PageSourceSearch

https://www.transition.fun/

html transition.fun collected 2026-10-02 00:35:57 UTC 471,666 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="en" class="dark"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/904be59b21bd51cb-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Flogo_full.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2Flogo_full.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2Flogo_full.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2Flogo_full.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2Flogo_full.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2Flogo_full.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2Flogo_full.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2Flogo_full.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2Flogo_full.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Flogo_full.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Flogo_full.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Flogo_full.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Flogo_full.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Flogo_full.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Flogo_full.webp&amp;w=2048&amp;q=75 2048w" imageSizes="(max-width: 768px) 80px, 138px"/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fappscreens.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Fappscreens.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Fappscreens.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Fappscreens.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Fappscreens.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Fappscreens.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Fappscreens.webp&amp;w=2048&amp;q=75 2048w" imageSizes="(max-width: 1280px) 100vw, 1218px" fetchPriority="high"/><link rel="preload" as="image" imageSrcSet="/_next/image/?url=%2Fappscreens-mobile.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=2048&amp;q=75 2048w" imageSizes="(max-width: 640px) 320px, (max-width: 768px) 400px, 500px" fetchPriority="high"/><link rel="preload" as="image" href="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1139972&amp;theme=light&amp;t=1778248010353"/><link rel="stylesheet" href="/_next/static/css/e56085131a936d5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/607423f7890dd189.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-892fad49f64ebc82.js"/>
1<script src="/_next/static/chunks/4bd1b696-100b9d70ed4e49c1.js" async=""></script>
1<script src="/_next/static/chunks/1255-b1eab68772ac9a12.js" async=""></script>
1<script src="/_next/static/chunks/main-app-0ee650784ad95c4e.js" async=""></script>
1<script src="/_next/static/chunks/8002-9396a81fdb07407b.js" async=""></script>
1<script src="/_next/static/chunks/app/layout-896410af01463361.js" async=""></script>
1<script src="/_next/static/chunks/2619-04bc32f026a0d946.js" async=""></script>
1<script src="/_next/static/chunks/1356-cbbf53f15471eff9.js" async=""></script>
1<script src="/_next/static/chunks/app/not-found-019c7942e8fb03c2.js" async=""></script>
1<script src="/_next/static/chunks/94730671-d66ef520ae5748f3.js" async=""></script>
1<script src="/_next/static/chunks/8e1d74a4-95b05d618d1ce205.js" async=""></script>
1<script src="/_next/static/chunks/9c4e2130-504e005b3e0f5dfe.js" async=""></script>
1<script src="/_next/static/chunks/1567-3788270a3266b680.js" async=""></script>
1<script src="/_next/static/chunks/6404-d500cfe1fe704f8f.js" async=""></script>
1<script src="/_next/static/chunks/3926-ffc011edb2d557d7.js" async=""></script>
1<script src="/_next/static/chunks/3897-24daaef0c1673dc5.js" async=""></script>
1<script src="/_next/static/chunks/4505-7f8f00c9f9631a0d.js" async=""></script>
1<script src="/_next/static/chunks/273-a5ad6a32c89558e2.js" async=""></script>
1<script src="/_next/static/chunks/4269-826ff6fa0d3e14c6.js" async=""></script>
1<script src="/_next/static/chunks/2957-c360fc215b75a88a.js" async=""></script>
1<script src="/_next/static/chunks/4450-ffabd93eba577742.js" async=""></script>
1<script src="/_next/static/chunks/9617-225ac8135b15ddf0.js" async=""></script>
1<script src="/_next/static/chunks/1678-c95d335beb9356be.js" async=""></script>
1<script src="/_next/static/chunks/2187-9dbff4db9af45ece.js" async=""></script>
1<script src="/_next/static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js" async=""></script>
1<script src="/_next/static/chunks/app/global-error-8249c9c36fb36ccf.js" async=""></script>
1<script src="/_next/static/chunks/app/%5Blocale%5D/error-456007683c45765c.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-Z6V8NS5VHE" as="script"/><link rel="preload" href="/appscreens.webp" as="image" type="image/webp" fetchPriority="high" media="(min-width: 1024px)"/><link rel="preload" href="/appscreens-mobile.webp" as="image" type="image/webp" fetchPriority="high" media="(max-width: 1023px)"/><link rel="preload" href="/logo_full.webp" as="image" type="image/webp"/><link rel="dns-prefetch" href="https://connect.facebook.net"/><link rel="dns-prefetch" href="https://www.redditstatic.com"/><link rel="dns-prefetch" href="https://www.googletagmanager.com"/><meta name="next-size-adjust" content=""/><meta name="theme-color" media="(prefers-color-scheme: light)" content="black"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="black"/><meta name="color-scheme" content="dark"/><title>Transition | The smartest way to train for a triathlon | Transition</title><meta name="description" content="Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!"/><meta name="application-name" content="Transition"/><link rel="author" href="https://www.transition.fun"/><meta name="author" content="Transition"/><meta name="keywords" content="triathlon training app,AI triathlon coach,personalized triathlon workouts,triathlon training plan,swim bike run training,triathlon performance analytics,ironman training program,triathlon AI coach,smart triathlon training,triathlon workout generator,triathlon training software,AI powered triathlon training app,personalized triathlon coaching platform,intelligent triathlon workout planning,triathlon training with artificial intelligence,adaptive triathlon training program,TrainingPeaks alternative,Strava training alternative,best triathlon training app,triathlon coaching app,improve triathlon performance,triathlon training optimization,triathlon race preparation,triathlon training consistency,triathlon workout personalization"/><meta name="publisher" content="Transition"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="Health &amp; Fitness"/><link rel="canonical" href="https://www.transition.fun/"/><link rel="alternate" hrefLang="en" href="https://www.transition.fun/"/><link rel="alternate" hrefLang="de" href="https://www.transition.fun/de/"/><link rel="alternate" hrefLang="nl" href="https://www.transition.fun/nl/"/><link rel="alternate" hrefLang="fr" href="https://www.transition.fun/fr/"/><link rel="alternate" hrefLang="fr-CA" href="https://www.transition.fun/fr-CA/"/><link rel="alternate" hrefLang="es" href="https://www.transition.fun/es/"/><link rel="alternate" hrefLang="es-MX" href="https://www.transition.fun/es-MX/"/><link rel="alternate" hrefLang="it" href="https://www.transition.fun/it/"/><link rel="alternate" hrefLang="pt" href="https://www.transition.fun/pt/"/><link rel="alternate" hrefLang="pt-PT" href="https://www.transition.fun/pt-PT/"/><link rel="alternate" hrefLang="da" href="https://www.transition.fun/da/"/><link rel="alternate" hrefLang="sv" href="https://www.transition.fun/sv/"/><link rel="alternate" hrefLang="nb" href="https://www.transition.fun/nb/"/><link rel="alternate" hrefLang="fi" href="https://www.transition.fun/fi/"/><link rel="alternate" hrefLang="pl" href="https://www.transition.fun/pl/"/><link rel="alternate" hrefLang="cs" href="https://www.transition.fun/cs/"/><link rel="alternate" hrefLang="sk" href="https://www.transition.fun/sk/"/><link rel="alternate" hrefLang="hu" href="https://www.transition.fun/hu/"/><link rel="alternate" hrefLang="ro" href="https://www.transition.fun/ro/"/><link rel="alternate" hrefLang="sl" href="https://www.transition.fun/sl/"/><link rel="alternate" hrefLang="lt" href="https://www.transition.fun/lt/"/><link rel="alternate" hrefLang="el" href="https://www.transition.fun/el/"/><link rel="alternate" hrefLang="tr" href="https://www.transition.fun/tr/"/><link rel="alternate" hrefLang="ru" href="https://www.transition.fun/ru/"/><link rel="alternate" hrefLang="uk" href="https://www.transition.fun/uk/"/><link rel="alternate" hrefLang="ar" href="https://www.transition.fun/ar/"/><link rel="alternate" hrefLang="he" href="https://www.transition.fun/he/"/><link rel="alternate" hrefLang="th" href="https://www.transition.fun/th/"/><link rel="alternate" hrefLang="vi" href="https://www.transition.fun/vi/"/><link rel="alternate" hrefLang="id" href="https://www.transition.fun/id/"/><link rel="alternate" hrefLang="ja" href="https://www.transition.fun/ja/"/><link rel="alternate" hrefLang="ko" href="https://www.transition.fun/ko/"/><link rel="alternate" hrefLang="zh" href="https://www.transition.fun/zh/"/><link rel="alternate" hrefLang="en-GB" href="https://www.transition.fun/en-GB/"/><link rel="alternate" hrefLang="en-AU" href="https://www.transition.fun/en-AU/"/><link rel="alternate" hrefLang="x-default" href="https://www.transition.fun/"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-title" content="Transition"/><meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/><meta property="og:title" content="Transition | The smartest way to train for a triathlon"/><meta property="og:description" content="Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!"/><meta property="og:url" content="https://www.transition.fun/"/><meta property="og:site_name" content="Transition"/><meta property="og:locale" content="en"/><meta property="og:image" content="https://www.transition.fun/transition_banner_social.jpg"/>
1<meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Transition | The smartest way to train for a triathlon - Transition"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@transitionapp"/><meta name="twitter:creator" content="@transitionapp"/><meta name="twitter:title" content="Transition | The smartest way to train for a triathlon"/><meta name="twitter:description" content="Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!"/><meta name="twitter:image" content="https://www.transition.fun/transition_banner_social.jpg"/><link rel="shortcut icon" href="/favicon/favicon.ico"/><link rel="icon" href="/favicon/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/favicon/apple-touch-icon.png"/>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="min-h-screen bg-background font-sans antialiased w-full mx-auto scroll-smooth overflow-x-hidden __className_fca8ee"><div hidden=""><!--$--><!--/$--></div><noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1256873769156809&amp;ev=PageView&amp;noscript=1" alt=""/></noscript>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","dark","dark",["light","dark"],null,false,true)</script>
1<script>document.documentElement.lang="en"</script>
1<main class="overflow-x-hidden relative"><div class="absolute top-0 left-0 right-0 h-[100vh] pointer-events-none z-0 opacity-[0.05]" style="background-image:url(/checkered.png);background-repeat:repeat;background-size:300px 180px"></div><div class="absolute top-0 left-0 right-0 h-[100vh] pointer-events-none z-0" style="background:linear-gradient(to bottom, transparent 0%, transparent 50%, hsl(var(--background)) 100%)"></div>
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.transition.fun/#organization","name":"Transition","description":"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts & Performance Analytics","url":"https://www.transition.fun","logo":{"@type":"ImageObject","url":"https://www.transition.fun/transition_banner_social.jpg","width":1200,"height":603},"sameAs":["https://twitter.com/transition_tri","https://www.instagram.com/transitiontriathlon","https://www.facebook.com/people/Transition-Triathlon-Training/61578018492539/","https://www.youtube.com/@TransitionTriathlon"],"contactPoint":{"@type":"ContactPoint","email":"[email protected]","contactType":"customer service","availableLanguage":"English"}},{"@type":"WebSite","@id":"https://www.transition.fun/#website","url":"https://www.transition.fun","name":"Transition","description":"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts & Performance Analytics","publisher":{"@id":"https://www.transition.fun/#organization"}},{"@type":"SoftwareApplication","@id":"https://www.transition.fun/#software-application","name":"Transition","description":"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts & Performance Analytics","url":"https://www.transition.fun","applicationCategory":"HealthAndFitnessApplication","operatingSystem":"iOS, Android, Web","softwareVersion":"2.1.0","screenshot":["https://www.transition.fun/appscreens.png","https://www.transition.fun/1.png","https://www.transition.fun/2.png","https://www.transition.fun/3.png"],"installUrl":["https://apps.apple.com/app/id6670714598","https://play.google.com/store/apps/details?id=com.transition.app"],"offers":[{"@type":"Offer","price":0,"priceCurrency":"USD","availability":"https://schema.org/InStock","url":"https://apps.apple.com/app/id6670714598","description":"Free download with in-app purchases available","category":"iOS App Store"},{"@type":"Offer","price":0,"priceCurrency":"USD","availability":"https://schema.org/InStock","url":"https://play.google.com/store/apps/details?id=com.transition.app","description":"Free download with in-app purchases available","category":"Google Play Store"}],"featureList":["AI-powered workout generation","Personalized training plans for swimming, cycling, and running","Real-time performance analytics and progress tracking","Multi-device synchronization across iOS, Android, and Web","24/7 AI coaching and workout adjustments","Race preparation and periodization planning"],"author":{"@type":"Organization","@id":"https://www.transition.fun/#organization"},"publisher":{"@type":"Organization","@id":"https://www.transition.fun/#organization"},"aggregateRating":{"@type":"AggregateRating","ratingValue":4.78,"ratingCount":313,"bestRating":5,"worstRating":1},"review":[{"@type":"Review","@id":"https://www.transition.fun/#review-1","author":{"@type":"Person","name":"Creed Hendrickson"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Transition has made my training simple and dynamic. With shifting schedules and weather, this system adjusts to variables and makes me better each day.","datePublished":"2025-09-01"},{"@type":"Review","@id":"https://www.transition.fun/#review-2","author":{"@type":"Person","name":"Prescott Balch"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"This app fills a perfect niche. I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training, that provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. It all comes at a small price compared to a human coach and it is future-proofed with constant access to the latest data on training philosophies.","datePublished":"2025-09-01"},{"@type":"Review","@id":"https://www.transition.fun/#review-3","author":{"@type":"Person","name":"Carlos Rebelo"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Transition has helped me improve my Ironman training more than any other method I've encountered in my triathlon journey. It's incredibly precise and personalized. I can't recommend it enough!!!","datePublished":"2025-09-01"}
1,{"@type":"Review","@id":"https://www.transition.fun/#review-4","author":{"@type":"Person","name":"Simon Wilkins"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. Transition has genuinely impressed me. The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and the built in nutrition logging – especially protein tracking – is excellent.","datePublished":"2026-02-01"},{"@type":"Review","@id":"https://www.transition.fun/#review-5","author":{"@type":"Person","name":"Matteo Castagna"},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"Very well crafted app for multisport athletes. The developer acts quickly on suggestions. Highly recommend.","datePublished":"2026-02-01"},{"@type":"Review","@id":"https://www.transition.fun/#review-6","author":{"@type":"Person","name":"Luis B."},"reviewRating":{"@type":"Rating","ratingValue":5,"bestRating":5,"worstRating":1},"reviewBody":"A great option for beginners that don't want to spend $300/mo for a pro trainer but want to have a comprehensive and adaptive, structured training with basic feedback and some tips.","datePublished":"2026-02-01"}]},{"@type":"Service","name":"AI-Powered Triathlon Training","description":"Personalized triathlon training plans powered by artificial intelligence","provider":{"@id":"https://www.transition.fun/#organization"},"serviceType":"Fitness Training","areaServed":"Worldwide","hasOfferCatalog":{"@type":"OfferCatalog","name":"Triathlon Training Services","itemListElement":[{"@type":"Offer","itemOffered":{"@type":"Service","name":"Sprint Triathlon Training","description":"Training plans for 750m swim, 20km bike, 5km run"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Olympic Distance Training","description":"Training plans for 1.5km swim, 40km bike, 10km run"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Half Ironman 70.3 Training","description":"Training plans for 1.9km swim, 90km bike, 21km run"}},{"@type":"Offer","itemOffered":{"@type":"Service","name":"Full Ironman Training","description":"Training plans for 3.8km swim, 180km bike, 42km run"}}]}},{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is Transition and how does it work?","acceptedA
1nswer":{"@type":"Answer","text":"Transition is an AI-powered triathlon training app that creates personalized swim, bike, and run workouts. Our artificial intelligence analyzes your fitness level, goals, schedule, and performance data to generate training plans that adapt to your progress. It's like having a professional triathlon coach available 24/7, but at a fraction of the cost."}},{"@type":"Question","name":"How does the AI workout generation work?","acceptedAnswer":{"@type":"Answer","text":"Our AI analyzes multiple factors including your current fitness level, training history, available time, upcoming races, recovery metrics, and progress trends. It then creates personalized workouts that balance swim, bike, and run training loads while optimizing for your specific goals. The AI continuously learns from your feedback and performance to improve future recommendations."}},{"@type":"Question","name":"Can Transition help me prepare for my first triathlon?","acceptedAnswer":{"@type":"Answer","text":"Absolutely! Transition offers beginner-friendly training plans specifically designed for first-time triathletes. Our AI starts with basic assessments to understand your current fitness level across swimming, cycling, and running, then creates a progressive plan that safely builds your endurance and skills. The Smart Coach feature provides guidance on technique, equipment, race strategy, and common beginner concerns."}},{"@type":"Question","name":"What devices and platforms does Transition integrate with?","acceptedA
1nswer":{"@type":"Answer","text":"Transition integrates with Garmin, Strava, Wahoo, Zwift, Rouvy, COROS, Suunto, Apple Health, Oura, and WHOOP. This allows for seamless data syncing and comprehensive training analysis. You can continue using your existing devices while benefiting from our AI insights and workout planning."}},{"@type":"Question","name":"How can Transition help me improve my race times?","acceptedAnswer":{"@type":"Answer","text":"Transition uses advanced analytics to identify specific areas for improvement in your training and performance. It provides data-driven insights on pacing strategies, training load optimization, and identifies your limiters across swim, bike, and run disciplines. Everyone's starting point is different, so we don't promise specific numbers — but consistent, well-periodized training is the most reliable path to faster race times, and Transition is built to keep you consistent."}},{"@type":"Question","name":"Is Transition suitable for experienced triathletes and competitive age group athletes?","acceptedA
1nswer":{"@type":"Answer","text":"Yes! Transition serves athletes from beginners to competitive age groupers. For experienced athletes, our AI provides advanced analytics, sophisticated periodization, and high-level training concepts that rival elite coaching. The platform identifies subtle patterns in your training data that human coaches might miss, helping break through performance plateaus."}},{"@type":"Question","name":"How much time does Transition save compared to self-coaching?","acceptedAnswer":{"@type":"Answer","text":"Transition takes over the time you would otherwise spend planning workouts, analyzing training data, and researching training methods. Our AI handles the complex calculations of training load balance, periodization, and workout progression automatically, letting you focus on the actual training and execution."}},{"@type":"Question","name":"What makes Transition different from TrainingPeaks, Strava, or other training platforms?","acceptedAnswer":{"@type":"Answer","text":"While platforms like TrainingPeaks and Strava are excellent for data analysis and social features, Transition goes further by actively creating your training plan using AI. Instead of just tracking what you've done, we intelligently plan what you should do next. Our AI considers the complex interplay between swim, bike, and run training that traditional platforms don't optimize for."}}]}]}</script>
1<header class="sticky top-0 left-0 right-0 z-50"><div class="py-4 border-b border-border/40 bg-background/90 backdrop-blur-md"><div class="flex justify-between items-center w-full px-6 md:px-8 lg:px-12"><a title="brand-logo" class="relative mr-6 flex items-center" href="/"><img alt="Transition Logo" width="138" height="26" decoding="async" data-nimg="1" class="w-auto h-[16px] md:h-[26px] mr-2" style="color:transparent" sizes="(max-width: 768px) 80px, 138px" srcSet="/_next/image/?url=%2Flogo_full.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2Flogo_full.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2Flogo_full.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2Flogo_full.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2Flogo_full.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2Flogo_full.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2Flogo_full.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2Flogo_full.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2Flogo_full.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Flogo_full.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Flogo_full.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Flogo_full.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Flogo_full.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Flogo_full.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Flogo_full.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2Flogo_full.webp&amp;w=2048&amp;q=75"/></a><div class="hidden lg:block"><div class="flex items-center "><nav class="mr-4"><nav class="relative z-10 flex max-w-max flex-1 items-center justify-center"><ul class="group flex flex-1 list-none items-center justify-center space-x-1"><li class="relative group/item"><button class="group inline-flex h-10 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-primary/10 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 group/trigger" type="button">Plans<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-hover/item:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="absolute top-full pt-1.5 hidden group-hover/item:block left-0"><div class="rounded-md border bg-popover text-popover-foreground shadow-lg animate-in fade-in zoom-in-95 duration-100"><ul class="grid gap-3 p-6 w-[400px] md:w-[500px] md:grid-cols-2 lg:w-[600px]"><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans"><div class="text-sm font-medium leading-none">All Plans</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Browse all training plans and find your perfect fit.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans/sprint"><div class="text-sm font-medium leading-none">Sprint</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Plans optimized for short-course speed.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans/olympic"><div class="text-sm font-medium leading-none">Olympic</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Balanced speed and endurance for standard distance.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans/half-ironman"><div class="text-sm font-medium leading-none">Ironman 70.3</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Build to 70.3 with smart volume and recovery.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans/ironman"><div class="text-sm font-medium leading-none">Ironman</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Long-course plans to peak confidently on race day.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/training-plans/longevity"><div class="text-sm font-medium leading-none">Longevity</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">General maintenance and health-focused training plans.</p></a></li></ul></div></div></li><li class="relative group/item"><a href="/features" class="group inline-flex h-10 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-primary/10 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50">Features</a></li><li class="relative group/item"><a href="/pricing" class="group inline-flex h-10 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-primary/10 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50">Pricing</a></li><li class="relative group/item"><button class="group inline-flex h-10 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-primary/10 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 group/trigger" type="button">Company<!-- --> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-hover/item:rotate-180" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="absolute top-full pt-1.5 hidden group-hover/item:block right-[-13rem]"><div class="rounded-md border bg-popover text-popover-foreground shadow-lg animate-in fade-in zoom-in-95 duration-100"><ul class="grid gap-3 p-6 w-[400px] md:w-[500px] md:grid-cols-2 lg:w-[600px]"><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/about"><div class="text-sm font-medium leading-none">About Us</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Learn about our mission and team.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/blog"><div class="text-sm font-medium leading-none">Blog</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Training tips, race stories, and triathlon insights.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="/podcast"><div class="text-sm font-medium leading-none">
1Podcast</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Listen to conversations with athletes and coaches.</p></a></li><li><a class="block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground hover:bg-primary/10" href="https://transition.printful.me/" target="_blank" rel="noopener noreferrer"><div class="text-sm font-medium leading-none">Store</div><p class="line-clamp-2 text-sm leading-snug text-muted-foreground">Shop official Transition gear and apparel.</p></a></li></ul></div></div></li><li class="relative group/item"><a href="/support" class="group inline-flex h-10 w-max items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-primary/10 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50">Support</a></li></ul></nav></nav><div class="gap- flex"><a class="bg-primary text-white-foreground hover:bg-primary/90 px-6 py-2 rounded-lg font-semibold transition-colors duration-200" href="/download">Join Us</a></div></div></div><div class="flex items-center gap-4 block lg:hidden"><a class="bg-primary text-white-foreground hover:bg-primary/90 px-4 py-2 rounded-lg font-semibold transition-colors duration-200 text-sm" href="/download">Join Us</a><div class="cursor-pointer"><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_milfknqlb_" data-state="closed" aria-label="Open menu" class="p-2 rounded-md hover:bg-primary/10"><svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 512 512" class="w-7 h-7" height="1em" width="1em" xmlns="http://www.w3.org/2000/svg"><path d="M64 384h384v-42.67H64zm0-106.67h384v-42.66H64zM64 128v42.67h384V128z"></path></svg></button></div></div></div><hr class="absolute w-full bottom-0 transition-opacity duration-300 ease-in-out opacity-0"/></div></header><section id="hero"><div class="relative flex w-full flex-col items-center justify-start px-4 sm:px-6 pt-12 md:pt-20 lg:px-8"><div class="flex w-full max-w-8xl flex-col space-y-4 md:space-y-8 overflow-hidden pt-0 md:pt-0 mb-3 md:mb-0"><h1 class="text-center [font-size:2em] font-bold leading-tight text-foreground sm:text-6xl md:[font-size:5.6em] [text-wrap:balance] lg:[text-wrap:unset]"><span class="block px-1 md:px-2">The <span class="text-primary">smartest</span> way to</span><span class="block px-1 md:px-2">train for a triathlon</span></h1><p class="mx-auto max-w-4xl text-lg text-center md:text-2xl leading-7 text-muted-foreground sm:leading-9 font-medium">Take the guesswork out of training with a plan that adapts to you — powered by Transition AI.</p></div><div class="mx-auto mt-2 flex w-full max-w-2xl flex-row items-center justify-center space-x-4 sm:mt-8"><a class="bg-primary text-white-foreground hover:bg-primary/90 px-8 py-4 rounded-lg text-lg font-semibold transition-colors duration-200" href="/download">Start Getting Faster</a></div><h3 class="mt-5 text-center text-base font-semibold text-gray-300">Sign up risk-free for 30 days.</h3></div></section><section><div><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"></div><div class="flex flex-col items-center -mt-12 md:mt-0 -mb-6 md:mb-0"><div class="w-full flex items-center justify-center h-auto sm:h-[500px] select-none mb-0 md:mb-16"><div class="hidden lg:block"><img alt="Transition App Screenshots - Training Dashboard, Workout Tracking, Progress Analytics, Community Features, and Performance Insights" fetchPriority="high" width="2229" height="1062" decoding="async" data-nimg="1" class="w-[1218px] h-auto" style="color:transparent" sizes="(max-width: 1280px) 100vw, 1218px" srcSet="/_next/image/?url=%2Fappscreens.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Fappscreens.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Fappscreens.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Fappscreens.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Fappscreens.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Fappscreens.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Fappscreens.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2Fappscreens.webp&amp;w=2048&amp;q=75"/></div><div class="lg:hidden"><img alt="Transition App Screenshots" fetchPriority="high" width="713" height="800" decoding="async" data-nimg="1" class="w-[320px] sm:w-[400px] md:w-[500px] h-auto" style="color:transparent" sizes="(max-width: 640px) 320px, (max-width: 768px) 400px, 500px" srcSet="/_next/image/?url=%2Fappscreens-mobile.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Fappscreens-mobile.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2Fappscreens-mobile.webp&amp;w=2048&amp;q=75"/></div></div></div></div></div></section><section id="featured-in" aria-label="As seen on"><div class="container mx-auto px-4 md:px-8 py-10 md:py-12"><p class="text-center text-xs sm:text-sm font-semibold tracking-widest uppercase text-muted-foreground mb-6">As seen on</p><div class="flex flex-col sm:flex-row items-center justify-center gap-8 sm:gap-12"><a href="https://www.220triathlon.com/gear/tri-tech/best-triathlon-training-apps-review" target="_blank" rel="noopener noreferrer" aria-label="220 Triathlon — Best Triathlon Training Apps review" class="opacity-80 hover:opacity-100 transition-opacity"><img alt="220 Triathlon" loading="lazy" width="220" height="40" decoding="async" data-nimg="1" class="h-9 sm:h-10 w-auto" style="color:transparent" srcSet="/_next/image/?url=%2Flogos%2F220-triathlon.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2F220-triathlon.png&amp;w=640&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2F220-triathlon.png&amp;w=640&amp;q=75"/></a><a href="https://www.producthunt.com/products/transition?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-transition-2" target="_blank" rel="noopener noreferrer" aria-label="Transition on Product Hunt" class="opacity-90 hover:opacity-100 transition-opacity"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1139972&amp;theme=light&amp;t=1778248010353" alt="Transition - AI coach to help you train smarter and race faster | Product Hunt" width="250" height="54"/></a></div></div></section><section id="real-athletes.-real-results."><div class="max-w-8xl"><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider up
1percase">Real athletes. Real results.</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Trusted by triathletes</h2></div><div class="relative mt-6 max-h-[600px] overflow-hidden"><div class="gap-4 md:columns-2 xl:columns-3"><div class="group flex overflow-hidden p-2 [--gap:1rem] [gap:var(--gap)] flex-col [--duration:40s]"><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has made my training simple and dynamic.</span> With shifting schedules and weather, this system adjusts to variables and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">makes me better each day.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Creed Hendrickson" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Creed Hendrickson</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has genuinely impressed me.</span> The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">the built in nutrition logging – especially protein tracking – is excellent.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Simon Wilkins" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Simon Wilkins</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has made my training simple and dynamic.</span> With shifting schedules and weather, this system adjusts to variables and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">makes me better each day.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Creed Hendrickson" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Creed Hendrickson</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has genuinely impressed me.</span> The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">the built in nutrition logging – especially protein tracking – is excellent.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Simon Wilkins" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Simon Wilkins</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has made my training simple and dynamic.</span> With shifting schedules and weather, this system adjusts to variables and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">makes me better each day.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Creed Hendrickson" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Creed Hendrickson</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has genuinely impressed me.</span> The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">the built in nutrition logging – especially protein tracking – is excellent.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Simon Wilkins" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Simon Wilkins</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has made my training simple and dynamic.</span> With shifting schedules and weather, this system adjusts to variables and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">makes me better each day.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Creed Hendrickson" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcreed.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Creed Hendrickson</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has genuinely impressed me.</span> The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">the built in nutrition logging – especially protein tracking – is excellent.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Simon Wilkins" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fsimon.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Simon Wilkins</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div></div><div class="group flex overflow-hidden p-2 [--gap:1rem] [gap:var(--gap)] flex-col [--duration:50s]"><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col [animation-direction:reverse]"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training,</span> provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">It all comes at a small price compared to a human coach.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Prescott Balch" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Prescott Balch</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Very well crafted app for multisport athletes.</span> The developer acts quickly on suggestions. Highly recommend.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Matteo Castagna" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Matteo Castagna</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col [animation-direction:reverse]"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training,</span> provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">It all comes at a small price compared to a human coach.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Prescott Balch" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Prescott Balch</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Very well crafted app for multisport athletes.</span> The developer acts quickly on suggestions. Highly recommend.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Matteo Castagna" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Matteo Castagna</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col [animation-direction:reverse]"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training,</span> provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">It all comes at a small price compared to a human coach.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Prescott Balch" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Prescott Balch</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Very well crafted app for multisport athletes.</span> The developer acts quickly on suggestions. Highly recommend.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Matteo Castagna" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Matteo Castagna</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col [animation-direction:reverse]"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training,</span> provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">It all comes at a small price compared to a human coach.</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Prescott Balch" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fprescott.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Prescott Balch</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Very well crafted app for multisport athletes.</span> The developer acts quickly on suggestions. Highly recommend.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Matteo Castagna" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fmatteo.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Matteo Castagna</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div></div><div class="group flex overflow-hidden p-2 [--gap:1rem] [gap:var(--gap)] flex-col [--duration:45s]"><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has helped me improve my Ironman training more than any other method I have encountered</span> in my triathlon journey. It is incredibly precise and personalized. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I cannot recommend it enough!</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Carlos Rebelo" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Carlos Rebelo</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">A great option for beginners</span> that do not want to spend $300/mo for a pro trainer but want to have a <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">comprehensive and adaptive, structured training</span> with basic feedback and some tips.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Luis B." loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Luis B.</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has helped me improve my Ironman training more than any other method I have encountered</span> in my triathlon journey. It is incredibly precise and personalized. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I cannot recommend it enough!</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Carlos Rebelo" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Carlos Rebelo</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">A great option for beginners</span> that do not want to spend $300/mo for a pro trainer but want to have a <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">comprehensive and adaptive, structured training</span> with basic feedback and some tips.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Luis B." loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Luis B.</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has helped me improve my Ironman training more than any other method I have encountered</span> in my triathlon journey. It is incredibly precise and personalized. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I cannot recommend it enough!</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Carlos Rebelo" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Carlos Rebelo</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">A great option for beginners</span> that do not want to spend $300/mo for a pro trainer but want to have a <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">comprehensive and adaptive, structured training</span> with basic feedback and some tips.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Luis B." loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Luis B.</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee-vertical flex-col"><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">Transition has helped me improve my Ironman training more than any other method I have encountered</span> in my triathlon journey. It is incredibly precise and personalized. <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">I cannot recommend it enough!</span>&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Carlos Rebelo" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fcarlos.jpg&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Carlos Rebelo</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div><div style="opacity:0"><div class="mb-4 flex w-full cursor-pointer break-inside-avoid flex-col items-center justify-between gap-6 rounded-xl p-4 bg-black [border:1px_solid_rgba(255,255,255,.1)] [box-shadow:0_-20px_80px_-20px_#ffffff1f_inset]"><div class="select-none text-sm font-normal text-neutral-400"><p>&quot;
1<span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">A great option for beginners</span> that do not want to spend $300/mo for a pro trainer but want to have a <span class="bg-primary/20 p-1 py-0.5 font-bold text-primary">comprehensive and adaptive, structured training</span> with basic feedback and some tips.&quot;</p><div class="flex flex-row py-1"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-star size-4 text-yellow-500 fill-yellow-500" aria-hidden="true"><path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z"></path></svg></div></div><div class="flex w-full select-none items-center justify-start gap-5"><img alt="Luis B." loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="h-10 w-10 rounded-full ring-1 ring-border ring-offset-4" style="color:transparent" srcSet="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=48&amp;q=75 1x, /_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75 2x" src="/_next/image/?url=%2Ftestimonials%2Fluis.webp&amp;w=96&amp;q=75"/><div><p class="font-medium text-neutral-500">Luis B.</p><p class="text-xs font-normal text-neutral-400">Triathlete</p></div></div></div></div></div></div></div><div class="pointer-events-none absolute inset-x-0 bottom-0 h-1/4 w-full bg-gradient-to-t from-background from-20%"></div><div class="pointer-events-none absolute inset-x-0 top-0 h-1/4 w-full bg-gradient-to-b from-background from-20%"></div></div></div></div></section><section id="works-with-your-favorite-apps-&amp;-devices"><div><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider up
1percase">Works With Your Favorite Apps &amp; Devices</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Seamless integration</h2></div><div class="relative mt-8 mb-12"><div class="group flex overflow-hidden p-2 [--gap:1rem] [gap:var(--gap)] flex-row [--duration:30s]"><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row"><div class="mx-10 flex items-center justify-center"><img alt="Garmin" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Apple Watch" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Strava" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Wahoo" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Zwift" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Rouvy" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75"/></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row"><div class="mx-10 flex items-center justify-center"><img alt="Garmin" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Apple Watch" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Strava" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Wahoo" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Zwift" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Rouvy" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75"/></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row"><div class="mx-10 flex items-center justify-center"><img alt="Garmin" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Apple Watch" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Strava" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Wahoo" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Zwift" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Rouvy" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75"/></div></div><div class="flex shrink-0 justify-around [gap:var(--gap)] animate-marquee flex-row"><div class="mx-10 flex items-center justify-center"><img alt="Garmin" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fgarmin.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Apple Watch" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fapple-watch.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Strava" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fstrava.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Wahoo" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fwahoo.svg&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Zwift" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Fzwift.png&amp;w=384&amp;q=75"/></div><div class="mx-10 flex items-center justify-center"><img alt="Rouvy" loading="lazy" width="140" height="40" decoding="async" data-nimg="1" class="h-8 w-auto max-w-[140px] object-contain opacity-40 transition-opacity duration-300 hover:opacity-100" style="color:transparent;filter:brightness(0) invert(1)" srcSet="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75 2x" src="/_next/image/?url=%2Flogos%2Frouvy.svg&amp;w=384&amp;q=75"/></div></div></div><div class="pointer-events-none absolute inset-y-0 left-0 w-1/4 bg-gradient-to-r from-background"></div><div class="pointer-events-none absolute inset-y-0 right-0 w-1/4 bg-gradient-to-l from-background"></div></div><div class="grid md:grid-cols-3 gap-6 max-w-5xl mx-auto"><div class="flex flex-col items-center rounded-xl border p-6 text-center shadow-sm border-neutral-800 bg-black" style="opacity:0;transform:translateY(20px)"><div class="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check w-6 h-6 text-primary" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg></div><h3 class="text-lg font-semibold mb-2">Auto-Track Completion</h3><p class="text-sm text-muted-foreground">Workouts are automatically marked complete when your device syncs — no manual logging needed.</p></div><div class="flex flex-col items-center rounded-xl border p-6 text-center shadow-sm border-neutral-800 bg-black" style="opacity:0;transform:translateY(20px)"><div class="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-watch w-6 h-6 text-primary" aria-hidden="true"><path d="M12 10v2.2l1.6 1"></path><path d="m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05"></path><path d="m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05"></path><circle cx="12" cy="12" r="6"></circle></svg></div><h3 class="text-lg font-semibold mb-2">Push to Devices</h3><p class="text-sm text-muted-foreground">Send structured workouts directly to your Garmin, Apple Watch, or bike computer with targets and intervals built in.</p></div><div class="flex flex-col items-center rounded-xl border p-6 text-center shadow-sm border-neutral-800 bg-black" style="opacity:0;transform:translateY(20px)"><div class="w-12 h-12 bg-primary/10 rounded-full flex items-center justify-center mb-4"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bike w-6 h-6 text-primary" aria-hidden="true"><circle cx="18.5" cy="17.5" r="3.5"></circle><circle cx="5.5" cy="17.5" r="3.5"></circle><circle cx="15" cy="5" r="1"></circle><path d="M12 17.5V14l-3-3 4-3 2 3h2"></path></svg></div><h3 class="text-lg font-semibold mb-2">
1Indoor Trainer Control</h3><p class="text-sm text-muted-foreground">Direct support for most indoor smart trainers — Transition controls resistance in real time during structured rides.</p></div></div><div class="mt-8 text-center"><a class="inline-flex items-center gap-2 text-sm font-medium text-primary hover:text-primary/80 transition-colors" href="/compatible-devices">See All Compatible Devices<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right w-4 h-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div></section><section id="features"><div><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider uppercase">Purpose-Built for Triathletes</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Everything You Need to Train Smarter</h2><p class="mx-auto mt-6 max-w-2xl text-lg leading-8 text-muted-foreground">No more guesswork. Four pillars of intelligent training that tell you what to do — and why.</p></div><div class="mx-auto mt-16 max-w-6xl space-y-24 overflow-hidden"><div><div class="flex flex-col items-center justify-between pb-2 md:pb-10 transition-[padding,gap] duration-500 ease-out px-4 sm:px-6 lg:px-8 lg:flex-row"><div class="w-full lg:w-1/2 mb-10 lg:mb-0 lg:pr-8" style="opacity:0;transform:translateX(-20px)"><div class="flex flex-col gap-4 max-w-md text-center lg:text-left mx-auto"><h2 class="text-3xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-bold text-primary" style="opacity:0;transform:translateX(-10px)">AI That Coaches You</h2><p class="text-lg sm:text-lg md:text-xl lg:text-2xl" style="opacity:0;transform:translateX(-10px)">A smart coach that adapts your training to your life — not the other way around.</p><ul class="mt-2 space-y-3 text-left" style="opacity:0;transform:translateX(-10px)"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Adaptive training plans across swim, bike, run, and strength</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Coach chat — tell it you&#x27;re injured, traveling, or busy and it reworks your schedule on the spot</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Race predictions based on your training data</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Life-proof scheduling — missed a session? Ask your coach and it reshuffles your week intelligently</span></li></ul></div></div><div class="w-full lg:w-1/2 max-w-sm lg:max-w-none mx-auto"><img alt="AI That Coaches You" loading="lazy" width="512" height="1110" decoding="async" data-nimg="1" class="w-full h-auto max-w-[280px] sm:max-w-[300px] mx-auto" style="color:transparent" sizes="(max-width: 640px) 280px, 300px" srcSet="/_next/image/?url=%2F6.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2F6.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2F6.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2F6.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2F6.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2F6.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2F6.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2F6.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2F6.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2F6.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2F6.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2F6.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2F6.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2F6.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2F6.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2F6.webp&amp;w=2048&amp;q=75"/></div></div></div><div><div class="flex flex-col items-center justify-between pb-2 md:pb-10 transition-[padding,gap] duration-500 ease-out px-4 sm:px-6 lg:px-8 lg:flex-row-reverse"><div class="w-full lg:w-1/2 mb-10 lg:mb-0 lg:pl-8" style="opacity:0;transform:translateX(20px)"><div class="flex flex-col gap-4 max-w-md text-center lg:text-left mx-auto"><h2 class="text-3xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-bold text-primary" style="opacity:0;transform:translateX(10px)">See What Others Can&#x27;t</h2><p class="text-lg sm:text-lg md:text-xl lg:text-2xl" style="opacity:0;transform:translateX(10px)">Deep analytics and AI-powered insights that reveal what&#x27;s really driving your performance.</p><ul class="mt-2 space-y-3 text-left" style="opacity:0;transform:translateX(10px)"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Fitness and training-load tracking across all three disciplines</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Swim, bike, and run video analysis with AI form feedback</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Sleep &amp; HRV tracking to optimize recovery timing</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">
1Fitness trend analysis and training load monitoring</span></li></ul></div></div><div class="w-full lg:w-1/2 max-w-sm lg:max-w-none mx-auto"><video autoPlay="" loop="" muted="" playsInline="" preload="none" aria-label="App feature demonstration" class="w-full h-auto max-w-[280px] sm:max-w-[300px] mx-auto rounded-2xl"></video></div></div></div><div><div class="flex flex-col items-center justify-between pb-2 md:pb-10 transition-[padding,gap] duration-500 ease-out px-4 sm:px-6 lg:px-8 lg:flex-row"><div class="w-full lg:w-1/2 mb-10 lg:mb-0 lg:pr-8" style="opacity:0;transform:translateX(-20px)"><div class="flex flex-col gap-4 max-w-md text-center lg:text-left mx-auto"><h2 class="text-3xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-bold text-primary" style="opacity:0;transform:translateX(-10px)">Fuel &amp; Recover Smarter</h2><p class="text-lg sm:text-lg md:text-xl lg:text-2xl" style="opacity:0;transform:translateX(-10px)">Dial in your nutrition, recovery, and body composition so every workout pays off.</p><ul class="mt-2 space-y-3 text-left" style="opacity:0;transform:translateX(-10px)"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Personalized nutrition guidance for every workout</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Protein tracking with photo-based food logging</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Mental training and recovery routines</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Weight tracking and body composition trends</span></li></ul></div></div><div class="w-full lg:w-1/2 max-w-sm lg:max-w-none mx-auto"><img alt="Fuel &amp; Recover Smarter" loading="lazy" width="512" height="1110" decoding="async" data-nimg="1" class="w-full h-auto max-w-[280px] sm:max-w-[300px] mx-auto" style="color:transparent" sizes="(max-width: 640px) 280px, 300px" srcSet="/_next/image/?url=%2F4.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2F4.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2F4.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2F4.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2F4.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2F4.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2F4.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2F4.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2F4.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2F4.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2F4.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2F4.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2F4.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2F4.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2F4.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2F4.webp&amp;w=2048&amp;q=75"/></div></div></div><div><div class="flex flex-col items-center justify-between pb-2 md:pb-10 transition-[padding,gap] duration-500 ease-out px-4 sm:px-6 lg:px-8 lg:flex-row-reverse"><div class="w-full lg:w-1/2 mb-10 lg:mb-0 lg:pl-8" style="opacity:0;transform:translateX(20px)"><div class="flex flex-col gap-4 max-w-md text-center lg:text-left mx-auto"><h2 class="text-3xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl font-bold text-primary" style="opacity:0;transform:translateX(10px)">Peak on Race Day</h2><p class="text-lg sm:text-lg md:text-xl lg:text-2xl" style="opacity:0;transform:translateX(10px)">Race-specific preparation that gets you to the start line sharp, confident, and ready.</p><ul class="mt-2 space-y-3 text-left" style="opacity:0;transform:translateX(10px)"><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Race-specific training with smart tapering</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Brick workouts and transition (T1/T2) practice you can log and track</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Indoor trainer control with real-time resistance for structured rides</span></li><li class="flex items-start gap-3"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 text-primary mt-0.5 shrink-0" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-base text-muted-foreground">Indoor/outdoor flexibility — ask your coach to swap a rained-out ride for an indoor session</span></li></ul></div></div><div class="w-full lg:w-1/2 max-w-sm lg:max-w-none mx-auto"><img alt="Peak on Race Day" loading="lazy" width="512" height="1110" decoding="async" data-nimg="1" class="w-full h-auto max-w-[280px] sm:max-w-[300px] mx-auto" style="color:transparent" sizes="(max-width: 640px) 280px, 300px" srcSet="/_next/image/?url=%2F2.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2F2.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2F2.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2F2.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2F2.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2F2.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2F2.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2F2.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2F2.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2F2.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2F2.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2F2.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2F2.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2F2.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2F2.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2F2.webp&amp;w=2048&amp;q=75"/></div></div></div></div></div></div></section><section id="why-choose-transition?"><div><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider up
1percase">Why choose Transition?</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Purpose-built for triathletes.</h2></div><div class="overflow-x-auto -mx-4 px-4"><table class="w-full border-collapse min-w-full"><thead><tr class="bg-primary/10"><th class="px-2 sm:px-3 py-2 text-left text-sm sm:text-base">Feature</th><th class="px-1 sm:px-2 py-2 text-center text-xs sm:text-base">Transition</th><th class="px-1 sm:px-2 py-2 text-center text-xs sm:text-base">TriDot</th><th class="px-1 sm:px-2 py-2 text-center text-xs sm:text-base">TrainingPeaks</th></tr></thead><tbody><tr class="bg-background"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">AI-Powered Training</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td></tr><tr class="bg-muted/50"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Adaptive Training Plans</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-xs block leading-tight">Manual</span></div></td></tr><tr class="bg-background"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">AI Coach Chat</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td></tr><tr class="bg-muted/50"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">AI Video Analysis (Swim, Bike, Run)</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td></tr><tr class="bg-background"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Nutrition Tracking</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td></tr><tr class="bg-muted/50"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Strength Training</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-xs block leading-tight">Higher tier</span></div></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td></tr><tr class="bg-background"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Smart Trainer Control</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-xs block leading-tight">Via TP Virtual</span></div></td></tr><tr class="bg-muted/50"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Race Predictions</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x inline text-red-500 w-4 h-4" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></td></tr><tr class="bg-background"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Garmin &amp; Apple Watch Sync</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td></tr><tr class="bg-muted/50"><td class="px-2 sm:px-3 py-2 border text-sm sm:text-base">Native Mobile App</td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg></td><td class="px-1 sm:px-2 py-2 border text-center"><div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check inline text-green-500 w-4 h-4" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span class="text-xs block leading-tight">Limited</span></div></td></tr></tbody></table></div></div></div></section><section id="pricing"><div class="container px-4 sm:px-6 lg:px-8"><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider up
1percase">Pricing</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Simple, transparent pricing</h2></div><div class="flex justify-center mb-4"><div class="relative flex items-center bg-muted/60 p-1 rounded-full"><button class="px-4 py-2 text-sm font-medium rounded-full transition-[background-color,color,box-shadow] duration-200 text-muted-foreground hover:text-foreground">Monthly</button><button class="px-4 py-2 text-sm font-medium rounded-full transition-[background-color,color,box-shadow] duration-200 flex items-center gap-2 bg-primary text-white shadow-sm">Yearly<span class="bg-green-100 text-green-800 text-xs px-2 py-0.5 rounded-full">Save up to 40%</span></button></div></div><div class="max-w-md mx-auto"><div class="bg-muted/60 p-6 lg:p-8 rounded-3xl grid grid-rows-[auto_auto_1fr_auto]"><div class="text-center mb-6"><div class="text-4xl font-bold text-primary mb-2">$139<span class="text-sm font-normal text-muted-foreground">/year</span></div><p class="text-sm text-muted-foreground">Everything you need to optimize your triathlon training. No hidden fees. Cancel anytime.</p></div><div class="bg-primary/10 border border-primary/20 rounded-xl p-4 mb-6 text-center"><p class="text-sm font-semibold text-primary mb-1">Save $1,500+ per year</p><p class="text-xs text-muted-foreground">compared to hiring a personal coach</p></div><div class="space-y-3"><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Personalized training plan</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Adaptive weekly adjustments</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Garmin &amp; Apple Watch sync</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Indoor trainer support</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Strength training included</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Unlimited coach chat</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Advanced performance analytics</span></div><div class="flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-check w-5 h-5 mr-2 text-primary" aria-hidden="true"><path d="M20 6 9 17l-5-5"></path></svg><span>Recovery and nutrition guidance</span></div></div><a class="mt-6 block w-full text-center bg-primary text-white py-3 rounded-full font-semibold hover:bg-primary/90 transition-colors" href="/download">Start Free Trial</a></div></div></div></div></section><section id="faq"><div><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider up
1percase">FAQ</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Common questions about Transition</h2></div><div class="mx-auto my-12 md:max-w-[800px]"><div class="flex w-full flex-col items-center justify-center space-y-2" data-orientation="vertical"><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_4b75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_b75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Is Transition suitable for beginners?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_4b75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_b75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_4j75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_j75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Is there real science behind the plans, or is it just AI?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_4j75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_j75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_4r75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_r75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Can Transition prepare me for a full IRONMAN or long-distance race?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_4r75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_r75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_5375fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_1375fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Can Transition support training for Duathlons, Marathons, and general fitness?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_5375fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_1375fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_5b75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_1b75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">How does Transition adapt to my specific triathlon goals?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_5b75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_1b75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_5j75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_1j75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Can I customize my weekly training schedule?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_5j75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_1j75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_5r75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_1r75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">How often does Transition update my training plan?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_5r75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_1r75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex">
1<button type="button" aria-controls="radix-_R_6375fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_2375fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Does Transition help peak and taper for races?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_6375fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_2375fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_6b75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_2b75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">How does Transition prevent overtraining?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_6b75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_2b75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_6j75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_2j75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">What happens if I get injured during training?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_6j75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_2j75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_6r75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_2r75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Does Transition include strength training?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_6r75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_2r75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_7375fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_3375fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">What devices does Transition integrate with?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_7375fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_3375fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_7b75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_3b75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">Can workouts be pushed directly to my Garmin watch?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_7b75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_3b75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_7j75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_3j75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">What indoor trainers does Transition work with?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_7j75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_3j75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div><div data-state="closed" data-orientation="vertical" class="w-full border rounded-lg overflow-hidden"><h3 data-orientation="vertical" data-state="closed" class="flex"><button type="button" aria-controls="radix-_R_7r75fknqlb_" aria-expanded="false" data-state="closed" data-orientation="vertical" id="radix-_R_3r75fknqlb_" class="flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&amp;[data-state=open]&gt;svg]:rotate-180 px-4" data-radix-collection-item="">How does Transition set my FTP and pace zones?<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 shrink-0 transition-transform duration-200" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></h3><div data-state="closed" id="radix-_R_7r75fknqlb_" hidden="" role="region" aria-labelledby="radix-_R_3r75fknqlb_" data-orientation="vertical" class="overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down" style="--radix-accordion-content-height:var(--radix-collapsible-content-height);--radix-accordion-content-width:var(--radix-collapsible-content-width)"></div></div></div></div><h4 class="mb-12 text-center text-sm font-medium tracking-tight text-foreground
1/80">Still have questions? Email us at<!-- --> <a href="/cdn-cgi/l/email-protection#81f2f4f1f1eef3f5c1f5f3e0eff2e8f5e8eeefafe7f4ef" class="underline"><span class="__cf_email__" data-cfemail="a3d0d6d3d3ccd1d7e3d7d1c2cdd0cad7cacccd8dc5d6cd">[email&#160;protected]</span></a></h4></div></div></section><section id="cta"><div class="bg-primary text-white py-16 [&amp;_h2]:text-white [&amp;_h3]:text-white [&amp;_p]:text-white/90"><div class="relative container mx-auto max-w-7xl px-4 py-16"><div class="text-center space-y-4 pb-6 mx-auto"><p class="text-sm text-primary font-mono font-medium tracking-wider uppercase">Ready to crush your next race?</p><h2 class="mx-auto mt-4 max-w-xs text-3xl font-semibold text-foreground sm:max-w-none sm:text-4xl md:text-5xl">Get the app. Train smarter. Race faster.</h2></div><div class="flex flex-col w-full sm:flex-row items-center justify-center space-y-4 sm:space-y-0 sm:space-x-4 pt-4"><a href="https://apps.apple.com/app/id6670714598"><img alt="Download on the App Store" loading="lazy" width="200" height="64" decoding="async" data-nimg="1" class="h-16 w-auto" style="color:transparent" srcSet="/_next/image/?url=%2Fbadges%2Fapple-en.svg&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Fbadges%2Fapple-en.svg&amp;w=640&amp;q=75 2x" src="/_next/image/?url=%2Fbadges%2Fapple-en.svg&amp;w=640&amp;q=75"/></a><a href="https://play.google.com/store/apps/details?id=com.transition.app&amp;referrer=utm_source%3Dtransition_fun%26utm_medium%3Dwebsite%26utm_campaign%3Dhome_cta"><img alt="Get it on Google Play" loading="lazy" width="200" height="64" decoding="async" data-nimg="1" class="h-16 w-auto" style="color:transparent" srcSet="/_next/image/?url=%2Fbadges%2Fplay-en.png&amp;w=256&amp;q=75 1x, /_next/image/?url=%2Fbadges%2Fplay-en.png&amp;w=640&amp;q=75 2x" src="/_next/image/?url=%2Fbadges%2Fplay-en.png&amp;w=640&amp;q=75"/></a></div></div></div></section><footer><div class="container py-16"><div class="border-t pt-12 w-full"><div class="mb-8"><a title="Transition" class="flex items-center space-x-2" href="/"><img alt="Transition Logo" loading="lazy" width="138" height="26" decoding="async" data-nimg="1" class="mr-2 h-[20px] w-auto md:h-[26px] " style="color:transparent" sizes="(max-width: 768px) 100px, 138px" srcSet="/_next/image/?url=%2Flogo_full.webp&amp;w=16&amp;q=75 16w, /_next/image/?url=%2Flogo_full.webp&amp;w=32&amp;q=75 32w, /_next/image/?url=%2Flogo_full.webp&amp;w=48&amp;q=75 48w, /_next/image/?url=%2Flogo_full.webp&amp;w=64&amp;q=75 64w, /_next/image/?url=%2Flogo_full.webp&amp;w=96&amp;q=75 96w, /_next/image/?url=%2Flogo_full.webp&amp;w=128&amp;q=75 128w, /_next/image/?url=%2Flogo_full.webp&amp;w=256&amp;q=75 256w, /_next/image/?url=%2Flogo_full.webp&amp;w=384&amp;q=75 384w, /_next/image/?url=%2Flogo_full.webp&amp;w=640&amp;q=75 640w, /_next/image/?url=%2Flogo_full.webp&amp;w=750&amp;q=75 750w, /_next/image/?url=%2Flogo_full.webp&amp;w=828&amp;q=75 828w, /_next/image/?url=%2Flogo_full.webp&amp;w=1080&amp;q=75 1080w, /_next/image/?url=%2Flogo_full.webp&amp;w=1200&amp;q=75 1200w, /_next/image/?url=%2Flogo_full.webp&amp;w=1920&amp;q=75 1920w, /_next/image/?url=%2Flogo_full.webp&amp;w=2048&amp;q=75 2048w" src="/_next/image/?url=%2Flogo_full.webp&amp;w=2048&amp;q=75"/></a></div><div class="grid grid-cols-1 md:grid-cols-3 gap-8 mb-8"><div class="flex flex-col space-y-4"><h3 class="text-sm font-semibold uppercase tracking-wider text-white">Resources</h3><div class="grid grid-cols-2 gap-x-8 gap-y-3 text-sm tracking-tight text-foreground"><a class="hover:text-primary" href="/training-plans">Training Plans</a><a class="hover:text-primary" href="/features">Features</a><a class="hover:text-primary" href="/pricing">Pricing</a><a class="hover:text-primary" href="/blog">Blog</a><a class="hover:text-primary" href="/podcast">Podcast</a><a class="hover:text-primary" href="/about">About</a><a class="hover:text-primary" href="/support">Support</a><a class="hover:text-primary" href="/faq">FAQ</a><a class="hover:text-primary" href="/triathlon-pace-calculator">Pace Calculator</a><a href="https://transition.printful.me/" target="_blank" rel="noopener noreferrer" class="hover:text-primary">Store</a></div></div><div class="flex flex-col space-y-4"><h3 class="text-sm font-semibold uppercase tracking-wider text-white">Company</h3><ul class="flex flex-col space-y-3 text-sm tracking-tight text-foreground"><li><a class="hover:text-primary" href="/terms">Terms &amp; Conditions</a></li><li><a class="hover:text-primary" href="/privacy">Privacy Policy</a></li><li><a class="hover:text-primary" href="/ambassadors">
1Ambassadors</a></li></ul></div><div class="flex flex-col space-y-4"><h3 class="text-sm font-semibold uppercase tracking-wider text-white">Contact Us</h3><ul class="flex flex-col space-y-3 text-sm tracking-tight text-foreground"><li><a href="/cdn-cgi/l/email-protection#52212722223d2026122620333c213b263b3d3c7c34273c" class="hover:text-primary"><span class="__cf_email__" data-cfemail="2b585e5b5b44595f6b5f594a4558425f424445054d5e45">[email&#160;protected]</span></a></li><li><a href="/cdn-cgi/l/email-protection#38484a5d4b4b784c4a59564b514c515756165e4d56" class="hover:text-primary">Press Requests</a></li></ul><div class="pt-2"><h4 class="mb-3 text-sm font-semibold uppercase tracking-wider text-white">Follow Us</h4><div class="flex space-x-4"><a href="https://www.instagram.com/transitiontriathlon" target="_blank" rel="noopener noreferrer" class="text-foreground hover:text-primary transition-colors" aria-label="Instagram"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 16 16"><path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233s.008-2.388.046-3.231c.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92m-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334"></path></svg></a><a href="https://www.facebook.com/people/Transition-Triathlon-Training/61578018492539/" target="_blank" rel="noopener noreferrer" class="text-foreground hover:text-primary transition-colors" aria-label="Facebook"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"></path></svg></a><a href="https://www.youtube.com/@TransitionTriathlon" target="_blank" rel="noopener noreferrer" class="text-foreground hover:text-primary transition-colors" aria-label="YouTube"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"></path></svg></a><a href="https://www.tiktok.com/@transitiontriathlon" target="_blank" rel="noopener noreferrer" class="text-foreground hover:text-primary transition-colors" aria-label="TikTok"><svg class="w-5 h-5" fill="currentColor" viewBox="0 0 24 24"><path d="M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 
16.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z"></path></svg></a></div></div></div></div><div class="pt-6 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4"><span class="text-md tracking-tight text-gray-500">Copyright © 2026 Transition. All rights reserved.</span><button type="button" role="combobox" aria-controls="radix-_R_5o5fknqlb_" aria-expanded="false" aria-autocomplete="none" dir="ltr" data-state="closed" class="flex h-10 items-center justify-between rounded-md border px-3 py-2 ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&amp;&gt;span]:line-clamp-1 w-[180px] text-sm border-border/60 bg-transparent text-foreground" aria-label="Select language"><span style="pointer-events:none">English</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-4 w-4 opacity-50" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><select aria-hidden="true" tabindex="-1" style="position:absolute;border:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;word-wrap:normal"></select></div></div></div></footer></main><!--$--><!--/$-->
vendor: 108 bytes, line 1
1<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1<script src="/_next/static/chunks/webpack-892fad49f64ebc82.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[11111,[\"8002\",\"static/chunks/8002-9396a81fdb07407b.js\",\"7177\",\"static/chunks/app/layout-896410af01463361.js\"],\"Tracking\"]\n3:I[51458,[\"8002\",\"static/chunks/8002-9396a81fdb07407b.js\",\"7177\",\"static/chunks/app/layout-896410af01463361.js\"],\"ThemeProvider\"]\n4:I[90254,[\"8002\",\"static/chunks/8002-9396a81fdb07407b.js\",\"7177\",\"static/chunks/app/layout-896410af01463361.js\"],\"ScrollToTop\"]\n5:I[9766,[],\"\"]\n6:I[98924,[],\"\"]\n7:I[52619,[\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"4345\",\"static/chunks/app/not-found-019c7942e8fb03c2.js\"],\"\"]\n"])</script>
1<script>self.__next_f.push([1,"8:I[81356,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"Image\"]\n"])</script>
1<script>self.__next_f.push([1,"a:I[13921,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"AttributionCapture\"]\n"])</script>
1<script>self.__next_f.push([1,"1a:I[54062,[\"4219\",\"static/chunks/app/global-error-8249c9c36fb36ccf.js\"],\"default\"]\n:HL[\"/_next/static/media/904be59b21bd51cb-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/e56085131a936d5f.css\",\"style\"]\n:HL[\"/_next/static/css/607423f7890dd189.css\",\"style\"]\nb:T2a12,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.transition.fun/#organization\",\"name\":\"Transition\",\"description\":\"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts \u0026 Performance Analytics\",\"url\":\"https://www.transition.fun\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://www.transition.fun/transition_banner_social.jpg\",\"width\":1200,\"height\":603},\"sameAs\":[\"https://twitter.com/transition_tri\",\"https://www.instagram.com/transitiontriathlon\",\"https://www.facebook.com/people/Transition-Triathlon-Training/61578018492539/\",\"https://www.youtube.com/@TransitionTriathlon\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"email\":\"[email protected]\",\"contactType\":\"customer service\",\"availableLanguage\":\"English\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.transition.fun/#website\",\"url\":\"https://www.transition.fun\",\"name\":\"Transition\",\"description\":\"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts \u0026 Performance Analytics\",\"publisher\":{\"@id\":\"https://www.transition.fun/#organization\"}},{\"@type\":\"SoftwareApplication\",\"@id\":\"https://www.transition.fun/#software-application\",\"name\":\"Transition\",\"description\":\"AI-Powered Triathlon Training App - Personalized Swim, Bike, Run Workouts \u0026 Performance Analytics\",\"url\":\"https://www.transition.fun\",\"applicationCategory\":\"HealthAndFitnessApplication\",\"operatingSystem\":\"iOS, Android, Web\",\"softwareVersion\":\"2.1.0\",\"screenshot\":[\"https://www.transition.fun/appscreens.png\",\"https://www.transition.fun/1.png\",\"https://www.transition.fun/2.png\",\"https://www.transition.fun/3.png\"],\"installUrl\":[\"https://apps.apple.com/app/id6670714598\",\"https://play.google.com/store/apps/details?id=com.transition.app\"],\"offers\":[{\"@type\":\"Offer\",\"price\":0,\"priceCurrency\":\"USD\",\"availability\":\"https://schema.org/InStock\",\"url\":\"https://apps.apple.com/app/id6670714598\",\"description\":\"Free download with in-app purchases available\",\"category\":\"iOS App Store\"},{\"@type\":\"Offer\",\"price\":0,\"priceCurrency\":\"USD\",\"availability\":\"https://schema.org/InStock\",\"url\":\"https://play.google.com/store/apps/details?id=com.transition.app\",\"description\":\"Free download with in-app purchases available\",\"category\":\"Google Play Store\"}],\"featureList\":[\"AI-powered workout generation\",\"Personalized training plans for swimming, cycling, and running\",\"Real-time performance analytics and progress tracking\",\"Multi-device synchronization across iOS, Android, and Web\",\"24/7 AI coaching and workout adjustments\",\"Race preparation and periodization planning\"],\"author\":{\"@type\":\"Organization\",\"@id\":\"https://www.transition.fun/#organization\"},\"publisher\":{\"@type\":\"Organization\",\"@id\":\"https://www.transition.fun/#organization\"},\"aggregateRating\":{\"@type\":\"AggregateRating\",\"ratingValue\":4.78,\"ratingCount\":313,\"bestRating\":5,\"worstRating\":1},\"review\":[{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-1\",\"author\":{\"@type\":\"Person\",\"name\":\"Creed Hendrickson\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"reviewBody\":\"Transition has made my training simple and dynamic. With shifting schedules and weather, this system adjusts to variables and makes me better each day.\",\"datePublished\":\"2025-09-01\"},{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-2\",\"author\":{\"@type\":\"Person\",\"name\":\"Prescott Balch\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"reviewBody\":\"This app fills a perfect niche. I get a full 3-sport plan that adjusts to my starting fitness and my ongoing training, that provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. It all comes at a small price compared to a human coach and it is future-proofed with constant access to the latest data on training philosophies.\",\"datePublished\":\"2025-09-01\"},{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-3\",\"author\":{\"@type\":\"Person\",\"name\":\"Carlos Rebelo\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\"
1:5,\"worstRating\":1},\"reviewBody\":\"Transition has helped me improve my Ironman training more than any other method I've encountered in my triathlon journey. It's incredibly precise and personalized. I can't recommend it enough!!!\",\"datePublished\":\"2025-09-01\"},{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-4\",\"author\":{\"@type\":\"Person\",\"name\":\"Simon Wilkins\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"reviewBody\":\"Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. Transition has genuinely impressed me. The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and the built in nutrition logging – especially protein tracking – is excellent.\",\"datePublished\":\"2026-02-01\"},{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-5\",\"author\":{\"@type\":\"Person\",\"name\":\"Matteo Castagna\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"reviewBody\":\"Very well crafted app for multisport athletes. The developer acts quickly on suggestions. Highly recommend.\",\"datePublished\":\"2026-02-01\"},{\"@type\":\"Review\",\"@id\":\"https://www.transition.fun/#review-6\",\"author\":{\"@type\":\"Person\",\"name\":\"Luis B.\"},\"reviewRating\":{\"@type\":\"Rating\",\"ratingValue\":5,\"bestRating\":5,\"worstRating\":1},\"reviewBody\":\"A great option for beginners that don't want to spend $300/mo for a pro trainer but want to have a comprehensive and adaptive, structured training with basic feedback and some tips.\",\"datePublished\":\"2026-02-01\"}]},{\"@type\":\"Service\",\"name\":\"AI-Powered Triathlon Training\",\"description\":\"Personalized triathlon training plans powered by artificial intelligence\",\"provider\":{\"@id\":\"https://www.transition.fun/#organization\"},\"serviceType\":\"Fitness Training\",\"areaServed\":\"Worldwide\",\"hasOfferCatalog\":{\"@type\":\"OfferCatalog\",\"name\":\"Triathlon Training Services\",\"itemListElement\":[{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Sprint Triathlon Training\",\"description\":\"Training plans for 750m swim, 20km bike, 5km run\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Olympic Distance Training\",\"description\":\"Training plans for 1.5km swim, 40km bike, 10km run\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Half Ironman 70.3 Training\",\"description\":\"Training plans for 1.9km swim, 90km bike, 21km run\"}},{\"@type\":\"Offer\",\"itemOffered\":{\"@type\":\"Service\",\"name\":\"Full Ironman Training\",\"description\":\"Training plans for 3.8km swim, 180km bike, 42km run\"}}]}},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is Transition and how does it work?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Transition is an AI-powered triathlon training app that creates personalized swim, bike, and run workouts. Our artificial intelligence analyzes your fitness level, goals, schedule, and performance data to generate training plans that adapt to your progress. It's like having a professional triathlon coach available 24/7, but at a fraction of the cost.\"}},{\"@type\":\"Question\",\"name\":\"How does the AI workout generation work?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Our AI analyzes multiple factors including your current fitness level, training history, available time, upcoming races, recovery metrics, and progress trends. It then creates personalized workouts that balance swim, bike, and run training loads while optimizing for your specific goals. The AI continuously learns from your feedback and performance to improve future recommendations.\"}},{\"@type\":\"Question\",\"name\":\"Can Transition help me prepare for my first triathlon?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Absolutely! Transition offers beginner-friendly training plans specifically designed for first-time triathletes. Our AI starts with basic assessments to understand your current fitness level across swimming, cycling, and running, then creates a progressive plan that safely builds your endurance and skills. The Smart Coach feature provides guidance on technique, equipment, race strategy, and common beginner concerns.\"}},{\"@type\":\"Question\",\"name\":\"What devices and platforms does Transition integrate with?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Transition integrates with Garmin, Strava, Wahoo, Zwift, Rouvy, COROS, Suunto, Apple Health, Oura, and WHOOP. This allows for seamless data syncing and comprehensive training analysis. You can continue using your existing devices while benefiting from our AI insights and workout planning.\"}},{\"@type\":\"Question\",\"name\":\"How can Transition help me improve my race times?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Transition uses advanced analytics to identify specific areas for improvement in your training and performance. It provides data-driven insights on pacing strategies, training load optimization, and identifies your limiters across swim, bike, and run disciplines. Everyone's starting point is different, so we don't promise specific numbers — but consistent, well-periodized training is the most reliable path to faster race times, and Transition is built to keep you consistent.\"}},{\"@type\":\"Question\",\"name\":\"Is Transition suitable for experienced triathletes and competitive age group athletes?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Yes! Transition serves athletes from beginners to competitive age groupers. For experienced athletes, our AI provides advanced analytics, sophisticated periodization, and high-level training concepts that rival elite coaching. The platform identifies subtle patterns in your training data that human coaches might miss, helping break through performance plateaus.\"}},{\"@type\":\"Question\",\"name\":\"How much time does Transition save compared to self-coaching?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Transition takes over the time you would otherwise spend planning workouts, analyzing training data, and researching training methods. Our AI handles the complex calculations of training load balance, periodization, and workout progression automatically, letting you focus on the actual training and execution.\"}},{\"@type\":\"Question\",\"name\":\"What makes Transition different from TrainingPeaks, Strava, or other training platforms?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"While platforms like TrainingPeaks and Strava are excellent for data analysis and social features, Transition goes further by actively creating your training plan using AI. Instead of just tracking what you've done, we intelligently plan what you should do next. Our AI considers the complex interplay between swim, bike, and run training that traditional platforms don't optimize for.\"}}]}]}"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"Tz2MdGuL97UeCzz2-PNVl\",\"p\":\"\",\"c\":[\"\",\"en\"],\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/e56085131a936d5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/607423f7890dd189.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"className\":\"dark\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/appscreens.webp\",\"as\":\"image\",\"type\":\"image/webp\",\"fetchPriority\":\"high\",\"media\":\"(min-width: 1024px)\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/appscreens-mobile.webp\",\"as\":\"image\",\"type\":\"image/webp\",\"fetchPriority\":\"high\",\"media\":\"(max-width: 1023px)\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/logo_full.webp\",\"as\":\"image\",\"type\":\"image/webp\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://connect.facebook.net\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://www.redditstatic.com\"}],[\"$\",\"link\",null,{\"rel\":\"dns-prefetch\",\"href\":\"https://www.googletagmanager.com\"}]]}],[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-background font-sans antialiased w-full mx-auto scroll-smooth overflow-x-hidden __className_fca8ee\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"attribute\":\"class\",\"defaultTheme\":\"dark\",\"enableSystem\":false,\"forcedTheme\":\"dark\",\"children\":[[\"$\",\"$L4\",null,{}],[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center justify-center min-h-screen bg-background px-6 text-center\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"mb-8\",\"children\":[\"$\",\"$L8\",null,{\"src\":\"/logo_full.webp\",\"alt\":\"Transition Logo\",\"width\":215,\"height\":25,\"className\":\"h-6 w-auto hover:opacity-80 transition-opacity\"}]}],[\"$\",\"h1\",null,{\"className\":\"text-6xl font-bold text-primary mb-4\",\"children\":\"404\"}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold text-foreground mb-2\",\"children\":\"Wrong turn on the course\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-8 max-w-md\",\"children\":\"The page you're looking for doesn't exist. Let's get you back on track.\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"bg-primary text-primary-foreground font-semibold px-6 py-3 rounded-lg hover:bg-primary/90 transition-colors\",\"children\":\"Back to Home\"}],[\"$\",\"$L7\",null,{\"href\":\"/support\",\"className\":\"border border-border text-foreground font-semibold px-6 py-3 rounded-lg hover:bg-muted transition-colors\",\"children\":\"Get Help\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]]}]]}]]}],{\"children\":[[\"locale\",\"en\",\"d\"],[\"$\",\"$1\",\"c\",{\"children\":[null,\"$L9\"]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"className\":\"overflow-x-hidden relative\",\"children\":[[\"$\",\"$La\",null,{}],[\"$\",\"div\",null,{\"className\":\"absolute top-0 left-0 right-0 h-[100vh] pointer-events-none z-0 opacity-[0.05]\",\"style\":{\"backgroundImage\":\"url(/checkered.png)\",\"backgroundRepeat\":\"repeat\",\"backgroundSize\":\"300px 180px\"}}],[\"$\",\"div\",null,{\"className\":\"absolute top-0 left-0 right-0 h-[100vh] pointer-events-none z-0\",\"style\":{\"background\":\"linear-gradient(to bottom, transparent 0%, transparent 50%, hsl(var(--background)) 100%)\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$b\"}}],\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\",\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}],null,\"$L18\"]}],{}
1,null,false]},null,false]},null,false],\"$L19\",false]],\"m\":\"$undefined\",\"G\":[\"$1a\",[]],\"s\":false,\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"1b:I[22957,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"1e:I[39652,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"1f:I[87314,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"20:I[70625,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"21:I[83997,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"22:I[69374,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"23:I[78384,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"24:I[34166,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"25:I[94450,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"26:I[24431,[],\"OutletBoundary\"]\n28:I[15278,[],\"AsyncMetadataOutlet\"]\n2a:I[24431,[],\"ViewportBoundary\"]\n2c:I[24431,[],\"MetadataBoundary\"]\n2d:\"$Sreact.suspense\"\nc:[\"$\",\"$L1b\",null,{}]\nd:[\"$\",\"section\",null,{\"id\":\"hero\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative flex w-full flex-col items-center justify-start px-4 sm:px-6 pt-12 md:pt-20 lg:px-8\",\"children\":[\"$L1c\",\"$L1d\"]}]}]\n10:[\"$\",\"$L1e\",null,{}]\n11:[\"$\",\"$L1f\",null,{}]\n12:[\"$\",\"$L20\",null,{}]\n13:[\"$\",\"$L21\",null,{}]\n14:[\"$\",\"$L22\",null,{}]\n15:[\"$\",\"$L23\",null,{}]\n16:[\"$\",\"$L24\",null,{}]\n17:[\"$\",\"$L25\",null,{}]\n18:[\"$\",\"$L26\",null,{\"children\":[\"$L27\",[\"$\",\"$L28\",null,{\"promise\":\"$@29\"}]]}]\n19:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L2a\",null,{\"children\":\"$L2b\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$L2c\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$2d\",null,{\"fallback\":null,\"children\":\"$L2e\"}]}]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1c:[\"$\",\"div\",null,{\"className\":\"flex w-full max-w-8xl flex-col space-y-4 md:space-y-8 overflow-hidden pt-0 md:pt-0 mb-3 md:mb-0\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-center [font-size:2em] font-bold leading-tight text-foreground sm:text-6xl md:[font-size:5.6em] [text-wrap:balance] lg:[text-wrap:unset]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"block px-1 md:px-2\",\"children\":[\"The \",[\"$\",\"span\",null,{\"className\":\"text-primary\",\"children\":\"smartest\"}],\" way to\"]}],[\"$\",\"span\",null,{\"className\":\"block px-1 md:px-2\",\"children\":\"train for a triathlon\"}]]}],[\"$\",\"p\",null,{\"className\":\"mx-auto max-w-4xl text-lg text-center md:text-2xl leading-7 text-muted-foreground sm:leading-9 font-medium\",\"children\":\"Take the guesswork out of training with a plan that adapts to you — powered by Transition AI.\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1d:[[\"$\",\"div\",null,{\"className\":\"mx-auto mt-2 flex w-full max-w-2xl flex-row items-center justify-center space-x-4 sm:mt-8\",\"children\":\"$L2f\"}],[\"$\",\"h3\",null,{\"className\":\"mt-5 text-center text-base font-semibold text-gray-300\",\"children\":\"Sign up risk-free for 30 days.\"}]]\n"])</script>
1<script>self.__next_f.push([1,"e:[\"$\",\"section\",null,{\"id\":\"$undefined\",\"ref\":\"$undefined\",\"className\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"$undefined\",\"children\":[\"$\",\"div\",null,{\"className\":\"relative container mx-auto max-w-7xl px-4 py-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"text-center space-y-4 pb-6 mx-auto\",\"children\":[\"$undefined\",\"$undefined\",\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center -mt-12 md:mt-0 -mb-6 md:mb-0\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full flex items-center justify-center h-auto sm:h-[500px] select-none mb-0 md:mb-16\",\"children\":[[\"$\",\"div\",null,{\"className\":\"hidden lg:block\",\"children\":[\"$\",\"$L8\",null,{\"src\":\"/appscreens.webp\",\"alt\":\"Transition App Screenshots - Training Dashboard, Workout Tracking, Progress Analytics, Community Features, and Performance Insights\",\"width\":2229,\"height\":1062,\"priority\":true,\"fetchPriority\":\"high\",\"sizes\":\"(max-width: 1280px) 100vw, 1218px\",\"className\":\"w-[1218px] h-auto\"}]}],[\"$\",\"div\",null,{\"className\":\"lg:hidden\",\"children\":[\"$\",\"$L8\",null,{\"src\":\"/appscreens-mobile.webp\",\"alt\":\"Transition App Screenshots\",\"width\":713,\"height\":800,\"priority\":true,\"fetchPriority\":\"high\",\"sizes\":\"(max-width: 640px) 320px, (max-width: 768px) 400px, 500px\",\"className\":\"w-[320px] sm:w-[400px] md:w-[500px] h-auto\"}]}]]}]}]]}]}]}]\n"])</script>
1<script>self.__next_f.push([1,"f:[\"$\",\"section\",null,{\"id\":\"featured-in\",\"aria-label\":\"As seen on\",\"children\":[\"$\",\"div\",null,{\"className\":\"container mx-auto px-4 md:px-8 py-10 md:py-12\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-center text-xs sm:text-sm font-semibold tracking-widest uppercase text-muted-foreground mb-6\",\"children\":\"As seen on\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col sm:flex-row items-center justify-center gap-8 sm:gap-12\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://www.220triathlon.com/gear/tri-tech/best-triathlon-training-apps-review\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"220 Triathlon — Best Triathlon Training Apps review\",\"className\":\"opacity-80 hover:opacity-100 transition-opacity\",\"children\":[\"$\",\"$L8\",null,{\"src\":\"/logos/220-triathlon.png\",\"alt\":\"220 Triathlon\",\"width\":220,\"height\":40,\"className\":\"h-9 sm:h-10 w-auto\"}]}],[\"$\",\"a\",null,{\"href\":\"https://www.producthunt.com/products/transition?embed=true\u0026utm_source=badge-featured\u0026utm_medium=badge\u0026utm_campaign=badge-transition-2\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"aria-label\":\"Transition on Product Hunt\",\"className\":\"opacity-90 hover:opacity-100 transition-opacity\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1139972\u0026theme=light\u0026t=1778248010353\",\"alt\":\"Transition - AI coach to help you train smarter and race faster | Product Hunt\",\"width\":250,\"height\":54}]}]]}]]}]}]\n"])</script>
1<script>self.__next_f.push([1,"30:I[64707,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"2f:[\"$\",\"$L30\",null,{\"ref\":\"$undefined\",\"href\":\"/download\",\"locale\":\"$undefined\",\"localeCookie\":{\"name\":\"NEXT_LOCALE\",\"sameSite\":\"lax\"},\"className\":\"bg-primary text-white-foreground hover:bg-primary/90 px-8 py-4 rounded-lg text-lg font-semibold transition-colors duration-200\",\"children\":\"Start Getting Faster\"}]\n"])</script>
1<script>self.__next_f.push([1,"31:I[3809,[\"9204\",\"static/chunks/94730671-d66ef520ae5748f3.js\",\"6711\",\"static/chunks/8e1d74a4-95b05d618d1ce205.js\",\"512\",\"static/chunks/9c4e2130-504e005b3e0f5dfe.js\",\"1567\",\"static/chunks/1567-3788270a3266b680.js\",\"2619\",\"static/chunks/2619-04bc32f026a0d946.js\",\"1356\",\"static/chunks/1356-cbbf53f15471eff9.js\",\"6404\",\"static/chunks/6404-d500cfe1fe704f8f.js\",\"3926\",\"static/chunks/3926-ffc011edb2d557d7.js\",\"3897\",\"static/chunks/3897-24daaef0c1673dc5.js\",\"4505\",\"static/chunks/4505-7f8f00c9f9631a0d.js\",\"273\",\"static/chunks/273-a5ad6a32c89558e2.js\",\"4269\",\"static/chunks/4269-826ff6fa0d3e14c6.js\",\"2957\",\"static/chunks/2957-c360fc215b75a88a.js\",\"4450\",\"static/chunks/4450-ffabd93eba577742.js\",\"9617\",\"static/chunks/9617-225ac8135b15ddf0.js\",\"1678\",\"static/chunks/1678-c95d335beb9356be.js\",\"2187\",\"static/chunks/2187-9dbff4db9af45ece.js\",\"465\",\"static/chunks/app/%5Blocale%5D/page-feb12c76836b918e.js\"],\"default\"]\n"])</script>
1<script>self.__next_f.push([1,"9:[\"$\",\"$L31\",null,{\"formats\":\"$undefined\",\"locale\":\"en\",\"messages\":{\"common\":{\"getStarted\":\"Get Started\",\"startFreeTrial\":\"Start Free Trial\",\"learnMore\":\"Learn More\",\"viewAll\":\"View All\",\"joinUs\":\"Join Us\",\"close\":\"Close\",\"logoAlt\":\"Transition Logo\"},\"downloadPage\":{\"yourPlanIsWaiting\":\"Your plan is waiting.\",\"downloadApp\":\"Download App\",\"qrAlt\":\"QR Code to download the app\",\"appAlt\":\"Transition App\"},\"signup\":{\"createYourAccount\":\"Create Your Account\",\"welcomeBack\":\"Welcome Back\",\"joinSubtitle\":\"Join a growing community of triathletes training smarter with AI-powered coaching.\",\"loginSubtitle\":\"Log in to continue to your training plan.\",\"emailPlaceholder\":\"Email\",\"passwordPlaceholder\":\"Password\",\"invalidEmail\":\"Please enter a valid email address\",\"passwordTooShort\":\"Password must be at least 6 characters\",\"enterBoth\":\"Please enter both email and password\",\"createAccount\":\"Create Account\",\"logIn\":\"Log In\",\"orContinueWith\":\"Or continue with\",\"alreadyHaveAccount\":\"Already have an account?\",\"logInLink\":\"Log in\",\"dontHaveAccount\":\"Don't have an account?\",\"signUpLink\":\"Sign up\",\"termsPrefix\":\"By signing up, you agree to our\",\"termsLink\":\"Terms and Conditions\",\"privacyPrefix\":\". View our\",\"privacyLink\":\"Privacy Policy\",\"errorEmailInUse\":\"An account with this email already exists. Try logging in below.\",\"errorWeakPassword\":\"Password is too weak. Please use at least 6 characters.\",\"errorInvalidEmail\":\"Please enter a valid email address.\",\"errorCreateFailed\":\"Failed to create account. Please try again.\",\"errorInvalidCredential\":\"Invalid email or password.\",\"errorTooManyRequests\":\"Too many failed attempts. Please try again later.\",\"errorLoginFailed\":\"Failed to log in. Please try again.\",\"errorGoogleFailed\":\"Failed to sign in with Google. Please try again.\",\"errorAppleFailed\":\"Failed to sign in with Apple. Please try again.\",\"successWelcome\":\"Welcome to Transition!\",\"successSubtitle\":\"Let's get you training.\",\"successDownload\":\"Download the app and sign in with\",\"successYourEmail\":\"your email\",\"successQrAlt\":\"Scan to download\",\"successAppStoreAlt\":\"App Store\",\"successGooglePlayAlt\":\"Google Play\",\"successTriathlonBgAlt\":\"Triathlon Background\",\"successHelp\":\"Questions? We're here to help.\",\"successContactSupport\":\"Contact Support\",\"successBackToHome\":\"Back to Home\"},\"nav\":{\"plans\":\"Plans\",\"allPlans\":\"All Plans\",\"allPlansDesc\":\"Browse all training plans and find your perfect fit.\",\"sprint\":\"Sprint\",\"sprintDesc\":\"Plans optimized for short-course speed.\",\"olympic\":\"Olympic\",\"olympicDesc\":\"Balanced speed and endurance for standard distance.\",\"halfIronman\":\"Ironman 70.3\",\"halfIronmanDesc\":\"Build to 70.3 with smart volume and recovery.\",\"ironman\":\"Ironman\",\"ironmanDesc\":\"Long-course plans to peak confidently on race day.\",\"longevity\":\"Longevity\",\"longevityDesc\":\"General maintenance and health-focused training plans.\",\"features\":\"Features\",\"pricing\":\"Pricing\",\"company\":\"Company\",\"aboutUs\":\"About Us\",\"aboutUsDesc\":\"Learn about our mission and team.\",\"blog\":\"Blog\",\"blogDesc\":\"Training tips, race stories, and triathlon insights.\",\"podcast\":\"Podcast\",\"podcastDesc\":\"Listen to conversations with athletes and coaches.\",\"store\":\"Store\",\"storeDesc\":\"Shop official Transition gear and apparel.\",\"support\":\"Support\"},\"hero\":{\"titleLine1Pre\":\"The \",\"titleLine1Highlight\":\"smartest\",\"titleLine1Post\":\" way to\",\"titleLine2\":\"train for a triathlon\",\"subtitle\":\"Take the guesswork out of training with a plan that adapts to you — powered by Transition AI.\",\"ctaButton\":\"Start Getting Faster\",\"trialText\":\"Sign up risk-free for 30 days.\"},\"solution\":{\"sectionTitle\":\"Purpose-Built for Triathletes\",\"sectionSubtitle\":\"Everything You Need to Train Smarter\",\"sectionDescription\":\"No more guesswork. Four pillars of intelligent training that tell you what to do — and why.\",\"pillar1Title\":\"AI That Coaches You\",\"pillar1Description\":\"A smart coach that adapts your training to your life — not the other way around.\",\"pillar1Bullet1\":\"Adaptive training plans across swim, bike, run, and strength\",\"pillar1Bullet2\":\"Coach chat — tell it you're injured, traveling, or busy and it reworks your schedule on the spot\",\"pillar1Bullet3\":\"Race predictions based on your training data\",\"pillar1Bullet4\":\"Life-proof scheduling — missed a session? Ask your coach and it reshuffles your week intelligently\",\"pillar2Title\":\"See What Others Can't\",\"pillar2Description\":\"Deep analytics and AI-powered insights that reveal what's really driving your performance.\",\"pillar2Bullet1\":\"Fitness and training-load tracking across all three disciplines\",\"pillar2Bullet2\":\"Swim, bike, and run video analysis with AI form feedback\",\"pillar2Bullet3\":\"Sleep \u0026 HRV tracking to optimize recovery timing\",\"pillar2Bullet4\":\"Fitness trend anal
1ysis and training load monitoring\",\"pillar3Title\":\"Fuel \u0026 Recover Smarter\",\"pillar3Description\":\"Dial in your nutrition, recovery, and body composition so every workout pays off.\",\"pillar3Bullet1\":\"Personalized nutrition guidance for every workout\",\"pillar3Bullet2\":\"Protein tracking with photo-based food logging\",\"pillar3Bullet3\":\"Mental training and recovery routines\",\"pillar3Bullet4\":\"Weight tracking and body composition trends\",\"pillar4Title\":\"Peak on Race Day\",\"pillar4Description\":\"Race-specific preparation that gets you to the start line sharp, confident, and ready.\",\"pillar4Bullet1\":\"Race-specific training with smart tapering\",\"pillar4Bullet2\":\"Brick workouts and transition (T1/T2) practice you can log and track\",\"pillar4Bullet3\":\"Indoor trainer control with real-time resistance for structured rides\",\"pillar4Bullet4\":\"Indoor/outdoor flexibility — ask your coach to swap a rained-out ride for an indoor session\"},\"integrations\":{\"sectionTitle\":\"Works With Your Favorite Apps \u0026 Devices\",\"sectionSubtitle\":\"Seamless integration\",\"autoTrackTitle\":\"Auto-Track Completion\",\"autoTrackDescription\":\"Workouts are automatically marked complete when your device syncs — no manual logging needed.\",\"pushToDevicesTitle\":\"Push to Devices\",\"pushToDevicesDescription\":\"Send structured workouts directly to your Garmin, Apple Watch, or bike computer with targets and intervals built in.\",\"indoorTrainerTitle\":\"Indoor Trainer Control\",\"indoorTrainerDescription\":\"Direct support for most indoor smart trainers — Transition controls resistance in real time during structured rides.\",\"seeAllDevices\":\"See All Compatible Devices\"},\"competition\":{\"sectionTitle\":\"Why choose Transition?\",\"sectionSubtitle\":\"Purpose-built for triathletes.\",\"featureColumn\":\"Feature\",\"transitionColumn\":\"Transition\",\"tridotColumn\":\"TriDot\",\"trainingPeaksColumn\":\"TrainingPeaks\",\"aiPoweredTraining\":\"AI-Powered Training\",\"adaptivePlans\":\"Adaptive Training Plans\",\"aiCoachChat\":\"AI Coach Chat\",\"videoAnalysis\":\"AI Video Analysis (Swim, Bike, Run)\",\"nutritionTracking\":\"Nutrition Tracking\",\"strengthTraining\":\"Strength Training\",\"smartTrainerControl\":\"Smart Trainer Control\",\"racePredictions\":\"Race Predictions\",\"garminAppleSync\":\"Garmin \u0026 Apple Watch Sync\",\"mobileApp\":\"Native Mobile App\",\"partial\":\"Partial\",\"limited\":\"Limited\",\"manual\":\"Manual\",\"thirdParty\":\"Third-party\",\"garminOnly\":\"Garmin only\",\"webOnly\":\"Web only\",\"paidAddon\":\"Paid add-on\",\"higherTier\":\"Higher tier\",\"viaVirtual\":\"Via TP Virtual\"},\"pricing\":{\"sectionTitle\":\"Pricing\",\"sectionSubtitle\":\"Simple, transparent pricing\",\"monthly\":\"Monthly\",\"yearly\":\"Yearly\",\"save40\":\"Save up to 40%\",\"perYear\":\"/year\",\"perMonth\":\"/month\",\"description\":\"Everything you need to optimize your triathlon training. No hidden fees. Cancel anytime.\",\"savingsPrefix\":\"Save {amount}+ per year\",\"savingsCompare\":\"compared to hiring a personal coach\",\"ctaButton\":\"Start Free Trial\",\"feature1\":\"Personalized training plan\",\"feature2\":\"Adaptive weekly adjustments\",\"feature3\":\"Garmin \u0026 Apple Watch sync\",\"feature4\":\"Indoor trainer support\",\"feature5\":\"Strength training included\",\"feature6\":\"Unlimited coach chat\",\"feature7\":\"Advanced performance analytics\",\"feature8\":\"Recovery and nutrition guidance\"},\"featuredIn\":{\"label\":\"As seen on\"},\"faq\":{\"sectionTitle\":\"FAQ\",\"sectionSubtitle\":\"Common questions about Transition\",\"stillHaveQuestions\":\"Still have questions? Email us at\",\"q1\":\"Is Transition suitable for beginners?\",\"a1\":\"Absolutely! Transition caters to all levels, from first-time triathletes to seasoned pros. The AI adjusts the complexity and intensity of your training plan based on your experience and fitness level.\",\"q2\":\"Can Transition prepare me for a full IRONMAN or long-distance race?\",\"a2\":\"Yes! During onboarding, you enter your target race (including full IRONMAN, 70.3, Olympic, or Sprint distance), goal times, and weekly training hours. Transition creates a personalized plan that progressively builds towards your race with proper base, build, peak, and taper phases—whether your race is 3 months or 9 months away.\",\"q3\":\"Can Transition support training for Duathlons, Marathons, and general fitness?\",\"a3\":\"Absolutely! During onboarding, you can specify your preferred disciplines (run, bike, weights) and target races. Transition will generate a plan without swimming that supports Duathlons, Marathons, Half Marathons, and general fitness training.\",\"q4\":\"How does Transition adapt to my specific triathlon goals?\",\"a4\":\"Transition uses AI, grounded in established coaching principles, to analyze your goals, current fitness level, and race schedule. It then creates a personalized training plan that balances swimming, biking, and running workouts for your target events.\",\"q5\":\"Can I customize my weekly training schedule?\",\"a5\":\"Absolutely. You can specify fixed rest days, preferred days for long workouts, and any other scheduling preferences. For example, you can set Friday as a rest day and Saturday as your long ride day. The system will build your plan around these preferences while maintaining proper periodization.\",\"q6\":\"How often does Transition update my training plan?\",\"a6\":\"Transition continuously analyzes your completed workouts and adapts your plan as you train, with bigger adjustments as you approach key races.\",\"q7\":\"Does Transition help peak and taper for races?\",\"a7\":\"Yes! Transition follows a periodized training model with base, build, peak, and taper phases to ensure you're feeling great on race day.\",\"q8\":\"How does Transition prevent overtraining?\",\"a8\":\"Our AI monitors your training load across all three disciplines. It analyzes factors like intensity, duration, and frequency of workouts, along with your recovery metrics, to help you train consistently and reduce the risk of burnout or injury.\",\"q9\":\"What happens if I get injured during training?\",\"a9\":\"If you report an injury, Transition will automatically adjust your training plan to help you recover while maintaining fitness where possible. Once you're ready, it will progressively rebuild your training load to get you back on track for your goals.\",\"q10\":\"Does Transition include strength training?\",\"a10\":\"Yes, the plan typically includes a few strength training workouts per week. You can customize or disable these based on your preferences. You can also tell the system what equipment you have available (e.g., dumbbells, rowing machine, resistance bands) and it will create workouts using your equipment.\",\"q11\":\"What devices does Transition integrate with?\",\"a11\":\"Transition integrates with Apple Watch, Garmin watches, and bike computers. You can also link Strava to automatically sync y
1our completed workouts. If you have a question about a specific app or device, please reach out to our support team and we'll be happy to help.\",\"q12\":\"Can workouts be pushed directly to my Garmin watch?\",\"a12\":\"Yes! Your structured swim, bike, and run workouts can be pushed straight to your Garmin watch or bike computer. Just connect your Garmin account during onboarding and they'll appear on your device ready to go.\",\"q13\":\"What indoor trainers does Transition work with?\",\"a13\":\"We're compatible with most popular indoor trainers including Wahoo Kickr, Garmin Tacx, and Saris. If you have issues with your specific device, message us and we'll add support.\",\"q14\":\"How does Transition set my FTP and pace zones?\",\"a14\":\"You can enter your FTP, Threshold pace \u0026 HR, and Critical Swim Speed in settings. You can also perform a ramp test on an indoor trainer within the app. Automatic detection is planned for a future update.\",\"q15\":\"Is there real science behind the plans, or is it just AI?\",\"a15\":\"Both. Transition uses AI, but not to make up workouts on its own. Every plan is built on established endurance coaching principles — progression, specificity, recovery, and consistency — combined with your training data, race goals, available time, and feedback from real athletes preparing for real races. AI is the tool that turns all of that into a coherent week quickly and personally; it isn't the philosophy. \u003clink\u003eRead our coaching philosophy →\u003c/link\u003e\"},\"cta\":{\"title\":\"Ready to crush your next race?\",\"subtitle\":\"Get the app. Train smarter. Race faster.\",\"appStoreAlt\":\"Download on the App Store\",\"googlePlayAlt\":\"Get it on Google Play\"},\"testimonials\":{\"sectionTitle\":\"Real athletes. Real results.\",\"sectionSubtitle\":\"Trusted by triathletes\",\"roleTriathlete\":\"Triathlete\",\"creed\":\"\\\"\u003chighlight\u003eTransition has made my training simple and dynamic.\u003c/highlight\u003e With shifting schedules and weather, this system adjusts to variables and \u003chighlight\u003emakes me better each day.\u003c/highlight\u003e\\\"\",\"simon\":\"\\\"Relatively new to triathlon but experienced with TrainingPeaks, Garmin and Strava. \u003chighlight\u003eTransition has genuinely impressed me.\u003c/highlight\u003e The Smart Coach is good and the adaptive training seems well thought out, the app is clean and intuitive and \u003chighlight\u003ethe built in nutrition logging – especially protein tracking – is excellent.\u003c/highlight\u003e\\\"\",\"prescott\":\"\\\"\u003chighlight\u003eI get a full 3-sport plan that adjusts to my starting fitness and my ongoing training,\u003c/highlight\u003e provides immediate feedback on workouts, can adjust plans quickly based on my progress or schedule interruptions, and can even provide strength, flexibility, and nutrition advice. \u003chighlight\u003eIt all comes at a small price compared to a human coach.\u003c/highlight\u003e\\\"\",\"matteo\":\"\\\"\u003chighlight\u003eVery well crafted app for multisport athletes.\u003c/highlight\u003e The developer acts quickly on suggestions. Highly recommend.\\\"\",\"carlos\":\"\\\"\u003chighlight\u003eTransition has helped me improve my Ironman training more than any other method I have encountered\u003c/highlight\u003e in my triathlon journey. It is incredibly precise and personalized. \u003chighlight\u003eI cannot recommend it enough!\u003c/highlight\u003e\\\"\",\"luis\":\"\\\"\u003chighlight\u003eA great option for beginners\u003c/highlight\u003e that do not want to spend $300/mo for a pro trainer but want to have a \u003chighlight\u003ecomprehensive and adaptive, structured training\u003c/highlight\u003e with basic feedback and some tips.\\\"\"},\"footer\":{\"resources\":\"Resources\",\"trainingPlans\":\"Training Plans\",\"features\":\"Features\",\"pricing\":\"Pricing\",\"support\":\"Support\",\"faq\":\"FAQ\",\"paceCalculator\":\"Pace Calculator\",\"nutritionCalculator\":\"Nutrition Calculator\",\"company\":\"Company\",\"about\":\"About\",\"blog\":\"Blog\",\"podcast\":\"Podcast\",\"store\":\"Store\",\"ambassadors\":\"Ambassadors\",\"terms\":\"Terms \u0026 Conditions\",\"privacy\":\"Privacy Policy\",\"contactUs\":\"Contact Us\",\"pressRequests\":\"Press Requests\",\"followUs\":\"Follow Us\",\"appStoreAlt\":\"Download on the App Store\",\"googlePlayAlt\":\"Get it on Google Play\",\"copyright\":\"Copyright © {year} Transition. All rights reserved.\"}
1,\"blog\":{\"title\":\"Triathlon Training Blog\",\"subtitle\":\"Expert insights on AI-powered triathlon training, performance optimization, and race preparation strategies. Get the latest tips for swim, bike, and run training.\",\"neverMiss\":\"Never Miss an Article\",\"newsletterCta\":\"Get the latest triathlon training insights delivered straight to your inbox.\",\"emailPlaceholder\":\"Enter your email\",\"subscribe\":\"Subscribe\",\"backToBlog\":\"Back to Blog\",\"minRead\":\"{minutes} min read\",\"share\":\"Share:\",\"relatedArticles\":\"Related Articles\",\"viewAllArticles\":\"View All Articles\"},\"about\":{\"pageTitle\":\"About Us\",\"missionTitle\":\"Our Mission\",\"missionDescription\":\"To make personalized, science-based triathlon training accessible to every athlete through AI.\",\"founderTitle\":\"Built by triathletes, for triathletes.\",\"founderP1\":\"As an Ironman triathlete and software engineer, I experienced firsthand the challenges of balancing intense training with a busy life. Traditional training plans were too generic, coaching was expensive, and existing apps just tracked data without actually helping me train smarter.\",\"founderP2\":\"That's why I built Transition - to help athletes like me train smarter and achieve our goals without having to make complex training decisions.\",\"founderAlt\":\"Alex Wormuth - Founder of Transition\",\"valuesTitle\":\"Our Values\",\"value1Title\":\"Science-Based Excellence\",\"value1Description\":\"We ground every decision in evidence-based sports science, incorporating proven principles of periodization, training load management, and multisport physiology to deliver results.\",\"value2Title\":\"Athlete-Centric Innovation\",\"value2Description\":\"Every feature we build starts with understanding real athlete needs. We prioritize solutions that make training more effective, accessible, and enjoyable.\",\"value3Title\":\"Authentic Community\",\"value3Description\":\"Built by athletes for athletes, we foster genuine connections and shared experiences that inspire and motivate our community to achieve their goals.\",\"value4Title\":\"Continuous Growth\",\"value4Description\":\"We embrace a growth mindset, constantly learning from our community, evolving our technology, and pushing the boundaries of what's possible in endurance training.\"},\"features\":{\"heroLabel\":\"Features\",\"heroTitle\":\"Everything You Need to Train Smarter\",\"heroSubtitle\":\"No more guesswork. Four pillars of intelligent training that tell you what to do — and why.\",\"pillar1Title\":\"AI That Coaches You\",\"pillar1Desc\":\"A coach that learns how you train, adapts when life happens, and gets to know you the more you use it. Tell it you're injured, traveling, or swamped at work — it reworks your schedule on the spot so you never fall behind.\",\"pillar1Feature1Title\":\"Adaptive Training Plans\",\"pillar1Feature1Desc\":\"Fully personalized plans across swim, bike, run, and strength that evolve with your fitness and schedule.\",\"pillar1Feature2Title\":\"Coach Chat\",\"pillar1Feature2Desc\":\"Tell your AI coach you're injured, traveling, or busy and it reworks your schedule on the spot — no human coach to wait on.\",\"pillar1Feature3Title\":\"Race Predictions\",\"pillar1Feature3Desc\":\"Data-driven race time estimates based on your actual training, so you can see how your projected race times are trending.\",\"pillar1Feature4Title\":\"Life-Proof Scheduling\",\"pillar1Feature4Desc\":\"Missed a session? Ask your coach and it reshuffles the rest of your week intelligently — no guilt, no lost progress.\",\"pillar2Title\":\"See What Others Can't\",\"pillar2Desc\":\"Go beyond basic metrics. Deep analytics and AI-powered insights reveal what's really driving your performance — and what's holding you back.\",\"pillar2Feature1Title\":\"Multisport Fitness Tracking\",\"pillar2Feature1Desc\":\"Track your fitness and training load across swim, bike, and run, and see how each discipline is trending.\",\"pillar2Feature2Title\":\"Video Analysis\",\"pillar2Feature2Desc\":\"Upload swim, bike, or run footage and get AI-powered form feedback with specific cues to improve efficiency.\",\"pillar2Feature3Title\":\"Sleep \u0026 HRV Tracking\",\"pillar2Feature3Desc\":\"Monitor sleep, duration, and heart rate variability to gauge recovery timing — with HRV-based readiness when you connect a Garmin.\",\"pillar2Feature4Title\":\"Fitness Trends \u0026 Training Load\",\"pillar2Feature4Desc\":\"Track long-term fitness progression and daily training load to stay in the sweet spot between growth and overtraining.\",\"pillar3Title\":\"Fuel \u0026 Recover Smarter\",\"pillar3Desc\":\"Dial in your nutrition, recovery, and body composition so every workout pays off. From pre-workout fueling to post-workout protein, every detail is covered.\",\"pillar3Feature1Title\":\"Personalized Nutrition Guidance\",\"pillar3Feature1Desc\":\"Get fueling guidance for before, during, and after every workout — built around your training.\",\"pillar3Feature2Title\":\"Photo-Based Protein Tracking\",\"pillar3Feature2Desc\":\"Snap a photo of your meal and get instant protein estimates — no manual logging or calorie counting.\",\"pillar3Feature3Title\":\"Mental Training \u0026 Recovery\",\"pillar3Feature3Desc\":\"Guided visualization, breathing exercises, and recovery routines to build mental resilience alongside physical fitness.\",\"pillar3Feature4Title\":\"Weight \u0026 Body Composition\",\"pillar3Feature4Desc\":\"Track weight trends and body composition changes to ensure your training is building the right kind of fitness.\",\"pillar4Title\":\"Peak on Race Day\",\"pillar4Desc\":\"Everything builds toward one day. Race-specific preparation ensures you arrive at the start line sharp, confident, and ready to execute your best performance.\",\"pillar4Feature1Title\":\"Smart Tapering\",\"pillar4Feature1Desc\":\"Race-specific training phases that fine-tune your taper so you hit the start line fresh and primed to perform.\",\"pillar4Feature2Title\":\"Transition Practice (T1/T2)\",\"pillar4Feature2Desc\":\"Brick workouts plus transition (T1/T2) practice you can log and track, so race-day changeovers feel automatic.\",\"pillar4Feature3Title\":\"Indoor Trainer Control\",\"pillar4Feature3Desc\":\"Connect your smart trainer for structured rides with real-time power and resistance control — every minute counts.\",\"pillar4Feature4Title\":\"Indoor/Outdoor Flexibility\",\"pillar4Feature4Desc\":\"Rained out? Ask your coach and it'll swap your outdoor session for an equivalent indoor workout so progress never stalls.\",\"pillar2Feature2Link1Label\":\"Swim Analysis\",\"pillar2Feature2Link2Label\":\"Bike Analysis\",\"pillar2Feature2Link3Label\":\"Run Analysis\"},\"howItWorks\":{\"sectionTitle\":\"How It Works\",\"sectionSubtitle\":\"See how our app helps you train smarter and get faster\",\"sectionDescription\":\"Discover the science and technology behind AI-powered triathlon coaching\",\"step1Label\":\"Step 1\",\"step1Title\":\"Set Your Goals\",\"step1Desc\":\"Tell us about your triathlon goals, race dates, current fitness level, and schedule availability. Our AI analyzes this information to understand your unique needs.\",\"step2Label\":\"Step 2\",\"step2Title\":\"AI Creates Your Plan\",\"step2Desc\":\"Our AI coach generates a personalized training plan that balances swim, bike, and run workouts. The plan adapts weekly based on your progress and feedback.\",\"step3Label\":\"Step 3\",\"step3Title\":\"Track \u0026 Improve\",\"step3Desc\":\"Monitor your progress across all three disciplines. Our AI provides insights, suggests adjustments, and helps optimize your race-day performance.\",\"aiTitle\":\"The AI Behind Your Success\",\"aiFeature1Title\":\"Smart Periodization\",\"aiFeature1Desc\":\"Our AI understands training phases and automatically adjusts your plan for base building, build phases, and race preparation.\",\"aiFeature2Title\":\"Personalized Adaptation\",\"aiFeature2Desc\":\"Learns from your performance data and feedback to continuously refine your training plan as you progress.\",\"aiFeature3Title\":\"Scie
1nce-Based Logic\",\"aiFeature3Desc\":\"Built on established endurance-training methodologies — progression, specificity, and recovery — not just generic recommendations.\",\"aiFeature4Title\":\"Real-Time Coaching\",\"aiFeature4Desc\":\"Get feedback and schedule adjustments from your AI coach, available 24/7.\",\"phasesTitle\":\"Intelligent Training Phases\",\"phase1Title\":\"Base Building Phase\",\"phase1Desc\":\"Build aerobic foundation and establish training habits\",\"phase2Title\":\"Build Phase\",\"phase2Desc\":\"Add intensity and race-specific workouts\",\"phase3Title\":\"Peak Phase\",\"phase3Desc\":\"Fine-tune fitness and prepare for race day\",\"phase4Title\":\"Race \u0026 Recovery\",\"phase4Desc\":\"Execute your race plan and recover properly\",\"benefitsTitle\":\"Why Athletes Choose Transition\",\"benefit1Title\":\"Saves Time\",\"benefit1Desc\":\"No more hours spent planning workouts - focus on training\",\"benefit2Title\":\"Manages Training Load\",\"benefit2Desc\":\"Smart load monitoring helps you avoid overtraining and keep progressing\",\"benefit3Title\":\"Trains All Three Disciplines\",\"benefit3Desc\":\"Balanced training across swim, bike, and run\",\"benefit4Title\":\"Adapts to Your Life\",\"benefit4Desc\":\"Plans adjust to your schedule and life changes\",\"benefit5Title\":\"Affordable AI Coaching\",\"benefit5Desc\":\"Get AI coaching at a fraction of the cost of a human coach\",\"benefit6Title\":\"Gets to Know You\",\"benefit6Desc\":\"The more you train, the more your coach knows about you\",\"ctaTitle\":\"Ready to Train Smarter?\",\"ctaSubtitle\":\"Join a growing community of triathletes already training with AI-powered coaching.\",\"ctaButton1\":\"Start Free Trial\",\"ctaButton2\":\"View Training Plans\"},\"coach\":{\"heroTitle\":\"Meet Your Triathlon Coach\",\"heroSubtitle\":\"AI-powered triathlon coaching that adapts to you\",\"heroDescription\":\"Get personalized guidance from an AI coach that learns, adapts, and helps you achieve your triathlon goals\",\"aiTitle\":\"Your AI Triathlon Coach\",\"aiDesc\":\"Meet your personal AI coach - a sophisticated training partner that understands triathlon science, analyzes your performance, and creates personalized plans that evolve with your progress.\",\"aiBullet1\":\"Available 24/7 for guidance and support\",\"aiBullet2\":\"Built on established periodization and sports-science principles\",\"aiBullet3\":\"Adapts to your feedback and logged notes\",\"chatTitle\":\"Chat with Your Coach\",\"chatDesc\":\"Ask questions, get advice, and receive personalized recommendations anytime.\",\"chatExample\":\"How should I adjust my training for next week's race?\",\"chatResponse\":\"Based on your recent workouts and race timeline, I recommend reducing volume by 30% and focusing on race-pace efforts...\",\"capTitle\":\"What Your AI Coach Can Do\",\"cap1Title\":\"Goal Setting \u0026 Planning\",\"cap1Desc\":\"Help you set realistic, achievable goals and create a roadmap to reach them based on your current fitness and timeline.\",\"cap2Title\":\"Performance Analysis\",\"cap2Desc\":\"Analyze your training data to identify strengths, weaknesses, and areas for improvement across all three disciplines.\",\"cap3Title\":\"Schedule Optimization\",\"cap3Desc\":\"Balance training with your life commitments, automatically adjusting plans when life gets busy.\",\"cap4Title\":\"Recovery Management\",\"cap4Desc\":\"Monitor your training load and stress levels to help you avoid overtraining and recover well.\",\"cap5Title\":\"Race Strategy\",\"cap5Desc\":\"Develop personalized race strategies based on your fitness, the course, and conditions.\",\"cap6Title\":\"Motivation \u0026 Support\",\"cap6Desc\":\"Provide encouragement, celebrate achievements, and help you stay motivated throughout your training journey.\",\"expertTitle\":\"Grounded in Coaching Science\",\"expertDesc\":\"Every plan follows established endurance-training principles — progression, specificity, recovery, and consistency.\",\"scienceTitle\":\"Built on Proven Methods\",\"cert1Title\":\"Established Principles\",\"cert1Desc\":\"Plans built on widely used periodization and training-load methods\",\"cert2Title\":\"Scie
1nce-Informed\",\"cert2Desc\":\"Workouts grounded in endurance sports-science research\",\"qaTitle\":\"Quality Assurance\",\"qa1Title\":\"Continuous Load Monitoring\",\"qa1Desc\":\"Your training load and intensity are monitored to keep your plan sustainable.\",\"qa2Title\":\"Safety First\",\"qa2Desc\":\"Built-in load monitoring helps you avoid overtraining\",\"vsTitle\":\"AI Coach vs Traditional Coaching\",\"aiAdvTitle\":\"AI Coach Advantages\",\"aiAdv1Title\":\"24/7 Availability\",\"aiAdv1Desc\":\"Always available for questions and guidance\",\"aiAdv2Title\":\"Affordable\",\"aiAdv2Desc\":\"Fraction of the cost of personal coaching\",\"aiAdv3Title\":\"Data-Driven\",\"aiAdv3Desc\":\"Analyzes every workout objectively\",\"aiAdv4Title\":\"Instant Adjustments\",\"aiAdv4Desc\":\"Adapts plans immediately based on performance\",\"keepTitle\":\"What You Keep\",\"keep1Title\":\"Personalized Plans\",\"keep1Desc\":\"Custom training tailored to your goals\",\"keep2Title\":\"Expert Knowledge\",\"keep2Desc\":\"Built on proven coaching methodologies\",\"keep3Title\":\"Motivation\",\"keep3Desc\":\"Encouragement and support throughout your journey\",\"keep4Title\":\"Progress Tracking\",\"keep4Desc\":\"Detailed analysis of your improvements\",\"ctaTitle\":\"Ready to Meet Your AI Coach?\",\"ctaDesc\":\"Start your journey with personalized AI coaching that adapts to your goals and lifestyle.\",\"ctaButton1\":\"Start Free Trial\",\"ctaButton2\":\"See How It Works\"},\"support\":{\"sectionTitle\":\"Support\",\"sectionSubtitle\":\"We're here to help\",\"sectionDescription\":\"Fill out the form below and we'll get back to you as soon as possible.\",\"nameLabel\":\"Name *\",\"emailLabel\":\"Email *\",\"messageLabel\":\"Message *\",\"namePlaceholder\":\"Your name\",\"emailPlaceholder\":\"Your email\",\"messagePlaceholder\":\"Tell us how we can help you...\",\"sendButton\":\"Send Message\",\"sendingButton\":\"Sending...\",\"successTitle\":\"Message Sent Successfully!\",\"successMessage\":\"Thank you for reaching out. We'll get back to you within 24 hours.\",\"errorMessage\":\"There was an error sending your message. Please try again.\",\"screenshotsLabel\":\"Screenshots (optional)\"},\"trainingPlans\":{\"heroEyebrow\":\"AI-powered triathlon plans\",\"heroTitleStart\":\"One plan that \",\"heroTitleHighlight\":\"actually adapts\",\"heroTitleEnd\":\" to your life\",\"heroSubtitle\":\"Sprint to Ironman. Built for your schedule, reshaped by AI as you train — at a fraction of the cost of a human coach.\",\"ratingSuffix\":\"average app rating\",\"freeTrialText\":\"Free 30-day trial — cancel anytime\",\"featuredInText\":\"Featured in 220 Triathlon\",\"appScreensAlt\":\"Transition app — adaptive training plan, AI coach chat, and analytics\",\"pickerTitle\":\"Pick your distance\",\"pickerSubtitle\":\"A plan for every race — and every goal\",\"pickerDescription\":\"Every plan adapts to your fitness, your equipment, and the weeks you have until race day.\",\"sprintCardBadge\":\"SPRINT\",\"sprintCardTitle\":\"Sprint Triathlon\",\"sprintCardTagline\":\"Fast, sharp, race-ready in 8–12 weeks.\",\"sprintCardWeeks\":\"8–12 weeks\",\"sprintCardAudience\":\"Beginners \u0026 speed seekers\",\"olympicCardBadge\":\"OLYMPIC\",\"olympicCardTitle\":\"Olympic Distance\",\"olympicCardTagline\":\"The classic test of speed and durability.\",\"olympicCardWeeks\":\"12–16 weeks\",\"olympicCardAudience\":\"Balanced multisport\",\"halfIronmanCardTitle\":\"Half Ironman\",\"halfIronmanCardTagline\":\"Smart volume, smart recovery — finish fresh.\",\"halfIronmanCardWeeks\":\"16–24 weeks\",\"halfIronmanCardAudience\":\"Long-course athletes\",\"ironmanCardTitle\":\"Full Ironman\",\"ironmanCardTagline\":\"Build to your strongest 140.6 yet.\",\"ironmanCardWeeks\":\"24–36 weeks\",\"ironmanCardAudience\":\"Endurance hunters\",\"longevityCardBadge\":\"LONGEVITY\",\"longevityCardTitle\":\"Longevity\",\"longevityCardTagline\":\"Train for life. Feel better every day.\",\"longevityCardVariety\":\"Flexible volume — every sport welcome\",\"longevityCardWeeks\":\"Ongoing\",\"longevityCardAudience\":\"Health-first athletes\",\"otherCardBadge\":\"CUSTOM\",\"otherCardTitle\":\"Other Distances\",\"otherCardTagline\":\"Marathon, duathlon, open-water, gravel \u0026 more.\",\"otherCardVariety\":\"Any sport, any goal\",\"otherCardWeeks\":\"Tailored\",\"otherCardAudience\":\"Anything single- or multisport\",\"howItWorksTitle\":\"How it works\",\"howItWorksSubtitle\":\"A plan that learns you, not a PDF you ignore\",\"howStep1Title\":\"Reads your data\",\"howStep1Desc\":\"Connects to Garmin, Apple Watch, Wahoo, and Strava and factors in your completed workouts and training load.\",\"howStep2Title\":\"Reshapes your week\",\"howStep2Desc\":\"Skipped a run? Sick? Long Saturday in the saddle? The plan adapts as you train.\",\"howStep3Title\":\"Peaks you on race day\",\"howStep3Desc\":\"Periodization, taper, fueling strategy, and pacing — all dialed for your exact event.\"},\"trainingPlanCommon\":{\"freeTrial\":\"Free 30-day trial\",\"ratingTrustSuffix\":\"from App Store \u0026 Google Play reviews\",\"appStoreAlt\":\"Download on the App Store\",\"googlePlayAlt\":\"Get it on Google Play\",\"pillarsTitle\":\"Inside your plan\",\"pillarsSubtitle\":\"Smart training that adapts to you\",\"pillarsDescription\":\"Your plan reshapes as you train based on what you actually did and how you're feeling — not a fixed PDF written months ago.\",\"sampleWeekTitle\":\"A week with your AI coach\",\"sampleWeekSubtitle\":\"What training actually looks like\",\"sampleWeekFootnote\":\"Yours will look different — the AI picks every session based on your fitness, schedule, race date, and how you're feeling.\",\"whatsCoveredTitle\":\"Every detail handled\",\"whatsCoveredSubtitle\":\"More than a plan — a system\",\"raceSectionDefaultTitle\":\"Train for your race\",\"raceSectionDefaultSubtitle\":\"Race-specific plans for every venue\",\"raceSectionDescription\":\"Each race plan tunes your training to your declared course terrain.\",\"viewAllRacesLink\":\"View all races →\",\"disciplineSwim\":\"Swim\",\"disciplineBike\":\"Bike\",\"disciplineRun\":\"Run\",\"disciplineStrength\":\"Strength\",\"disciplineRecovery\":\"Recovery\",\"disciplineBrick\":\"Brick\",\"dayMon\":\"Mon\",\"dayTue\"
1:\"Tue\",\"dayWed\":\"Wed\",\"dayThu\":\"Thu\",\"dayFri\":\"Fri\",\"daySat\":\"Sat\",\"daySun\":\"Sun\",\"restDayLabel\":\"Recovery\"},\"freeTrial\":{\"heroTitle\":\"Free 30-Day Trial\",\"heroSubtitle\":\"Start getting faster today and unlock your best training\",\"heroDescription\":\"Experience the power of AI-powered triathlon coaching with full access to all features\",\"freeTitle\":\"30 Days Completely Free\",\"freeSubtitle\":\"Cancel anytime. Experience everything Transition has to offer.\",\"benefit1Title\":\"Personalized Training Plans\",\"benefit1Desc\":\"Get custom plans tailored to your goals and fitness level\",\"benefit2Title\":\"AI Coach Guidance\",\"benefit2Desc\":\"24/7 access to your personal AI triathlon coach\",\"benefit3Title\":\"Adaptive Scheduling\",\"benefit3Desc\":\"Plans that adjust to your life and schedule changes\",\"benefit4Title\":\"Progress Tracking\",\"benefit4Desc\":\"Detailed analytics and performance insights\",\"benefit5Title\":\"Community Access\",\"benefit5Desc\":\"Connect with other triathletes and share experiences\",\"benefit6Title\":\"Mobile App\",\"benefit6Desc\":\"Full access to iOS and Android apps\",\"experienceTitle\":\"What You'll Experience in 30 Days\",\"exp1Title\":\"Weeks 1-2: Foundation Setup\",\"exp1Desc\":\"Complete your athlete profile, set goals, and receive your first personalized training plan. Start with workouts designed for your current fitness level.\",\"exp2Title\":\"AI Coach Interaction\",\"exp2Desc\":\"Chat with your AI coach, ask questions about technique, pacing, and race strategy. Get personalized advice based on your training data.\",\"exp3Title\":\"Performance Insights\",\"exp3Desc\":\"See how AI analyzes your workouts and provides insights on your swim, bike, and run performance. Understand your strengths and areas for improvement.\",\"exp4Title\":\"Weeks 3-4: Plan Adaptation\",\"exp4Desc\":\"Experience how the AI adapts your training based on your progress and feedback. See plans adjust to your schedule and performance improvements.\",\"exp5Title\":\"Training Variety\",\"exp5Desc\":\"Experience different workout types across all three disciplines: endurance, speed, technique, and race-specific sessions.\",\"exp6Title\":\"Progress Tracking\",\"exp6Desc\":\"Monitor your improvements with detailed analytics and see how your fitness develops across swim, bike, and run.\",\"testimonialsTitle\":\"What Athletes Say\",\"testimonial1Text\":\"Transition has made my training simple and dynamic. With shifting schedules and weather, this system adjusts to variables and makes me better each day.\",\"testimonial1Author\":\"Creed Hendrickson - Triathlete\",\"testimonial2Text\":\"Transition has genuinely impressed me. The Smart Coach is good and the adaptive training seems well thought out. The built in nutrition logging — especially protein tracking — is excellent.\",\"testimonial2Author\":\"Simon Wilkins - Triathlete\",\"testimonial3Text\":\"Transition has helped me improve my Ironman training more than any other method I've encountered in my triathlon journey. It's incredibly precise and personalized.\",\"testimonial3Author\":\"Carlos Rebelo - Triathlete\",\"testimonial4Text\":\"Very well crafted app for multisport athletes. The developer acts quickly on suggestions. Highly recommend.\",\"testimonial4Author\":\"Matteo Castagna - Triathlete\",\"startTitle\":\"How to Start Getting Faster\",\"step1Title\":\"Download the App\",\"step1Desc\":\"Available on iOS and Android. Download takes less than 30 seconds.\",\"step2Title\":\"Create Your Profile\",\"step2Desc\":\"Tell us about your goals, experience, and schedule. Takes about 5 minutes.\",\"step3Title\":\"Start Training\",\"step3Desc\":\"Get your first personalized workout immediately and begin your journey.\",\"guaranteeTitle\":\"No Commitment — Cancel Anytime\",\"guarantee1\":\"Train smarter from day one\",\"guarantee2\":\"Cancel anytime\",\"guarantee3\":\"Full feature access\"},\"feedback\":{\"title\":\"Feedback\",\"subtitle\":\"Help us improve Transition\",\"description\":\"Your feedback is invaluable to us. Share your thoughts, suggestions, and experiences to help us make Transition better for everyone.\",\"loading\":\"Loading feedback form...\"},\"subscriptionCancelled\":{\"title\":\"Subscription Required\",\"subtitle\":\"Start your membership to use Transition\",\"description\":\"Still on the fence? Reach out to us for a discount on your subscription.\",\"contactUs\":\"Contact Us\"},\"subscriptionSuccess\":{\"title\":\"Subscription Activated!\",\"subtitle\":\"Welcome to Transition\",\"description\":\"Navigate back to the app to generate your personalized training plan.\",\"loadingText\":\"Loading...\",\"successTitle\":\"Subscription Successful!\",\"membershipStarted\":\"Your membership has started.\",\"continueInApp\":\"Continue in the App\",\"continueDescription\":\"Get back to your training with the full Transition experience\",\"openApp\":\"Open Transition App\"},\"unsubscribed\":{\"title\":\"Successfully Unsubscribed\",\"subtitle\":\"You're all set\",\"description\":\"You have been successfully unsubscribed from our email notifications.\"},\"compatibleDevices\":{\"pageLabel\":\"Device Compatibility\",\"pageTitle\":\"Compatible Devices \u0026 Apps\",\"pageDescription\":\"Transition works with the watches, bike computers, trainers, and apps you already own. Push workouts, auto-track completion, and control your trainer — all from one platform.\",\"watchesTitle\":\"Watches\",\"
1watchesDescription\":\"Push structured workouts with targets and intervals. Auto-track completion on sync.\",\"watchGarminForerunner\":\"Garmin Forerunner\",\"watchGarminForerunnerDetail\":\"Forerunner 55, 165, 255, 255S, 265, 265S, 955, 965, and all other Forerunner models\",\"watchGarminFenix\":\"Garmin Fenix / Enduro\",\"watchGarminFenixDetail\":\"Fenix 6, Fenix 7, Fenix 8, Enduro, Enduro 2, Enduro 3\",\"watchGarminVenu\":\"Garmin Venu\",\"watchGarminVenuDetail\":\"Venu 2, Venu 2S, Venu 3, Venu 3S, Venu Sq 2\",\"watchGarminInstinct\":\"Garmin Instinct\",\"watchGarminInstinctDetail\":\"Instinct 2, Instinct 2S, Instinct 2X, Instinct 3\",\"watchGarminSwim\":\"Garmin Swim / Triathlon\",\"watchGarminSwimDetail\":\"Swim 2, Descent series\",\"watchAppleWatch\":\"Apple Watch\",\"watchAppleWatchDetail\":\"Series 4 and newer, SE (1st \u0026 2nd gen), Ultra, Ultra 2\",\"bikeComputersTitle\":\"Bike Computers\",\"bikeComputersDescription\":\"Send bike workouts with power and heart rate targets directly to your head unit.\",\"bikeEdge1050\":\"Garmin Edge 1050\",\"bikeEdge1050Detail\":\"Full structured workout support with color touchscreen\",\"bikeEdge1040\":\"Garmin Edge 1040 / 1040 Solar\",\"bikeEdge1040Detail\":\"Structured workouts, power targets\",\"bikeEdge840\":\"Garmin Edge 840 / 840 Solar\",\"bikeEdge840Detail\":\"Compact form factor with full workout support\",\"bikeEdge540\":\"Garmin Edge 540 / 540 Solar\",\"bikeEdge540Detail\":\"Button-based with structured workout support\",\"bikeEdge530830\":\"Garmin Edge 530 / 830\",\"bikeEdge530830Detail\":\"Previous generation, fully supported\",\"bikeEdgeExplore2\":\"Garmin Edge Explore 2\",\"bikeEdgeExplore2Detail\":\"Touring-focused with workout support\",\"smartTrainersTitle\":\"Smart Trainers\",\"smartTrainersDescription\":\"Transition controls resistance in real time during structured indoor rides via Bluetooth.\",\"trainerWahooKickr\":\"Wahoo KICKR\",\"trainerWahooKickrDetail\":\"KICKR, KICKR CORE, KICKR SNAP, KICKR MOVE\",\"trainerTacxGarmin\":\"Tacx / Garmin\",\"trainerTacxGarminDetail\":\"Tacx NEO 3M, NEO 2T, Flux 2, Flow\",\"trainerElite\":\"Elite\",\"trainerEliteDetail\":\"Elite Justo, Suito-T, Direto XR, Tuo\",\"trainerSaris\":\"Saris\",\"trainerSarisDetail\":\"Saris H3, H4\",\"trainerJetBlack\":\"JetBlack\",\"trainerJetBlackDetail\":\"JetBlack VOLT, VOLT Pro\",\"trainerBluetoothFtms\":\"Any Bluetooth FTMS trainer\",\"trainerBluetoothFtmsDetail\":\"Standard Bluetooth protocol support for most modern smart trainers\",\"appsPlatformsTitle\":\"Apps \u0026 Platforms\",\"appsPlatformsDescription\":\"Sync activities automatically — no manual entry.\",\"appAppleHealth\":\"Apple Health\",\"appAppleHealthDetail\":\"Activity and health data sync on iOS\",\"appGarminConnect\":\"Garmin Connect\",\"appGarminConnectDetail\":\"Two-way sync for workouts and activities\",\"appStrava\":\"Strava\",\"appStravaDetail\":\"Automatic activity sync — any app or device that syncs to Strava works with Transition (Polar, COROS, Suunto, and more)\",\"appZwift\":\"Zwift\",\"appZwiftDetail\":\"Two-way sync — push scheduled indoor bike workouts directly to Zwift, and completed rides pull back automatically (direct integration, not via Strava)\",\"appRouvy\":\"ROUVY\",\"appRouvyDetail\":\"Two-way sync — push structured bike workouts to ROUVY, and completed rides pull back automatically\",\"sensorsTitle\":\"Sensors\",\"sensorsDescription\":\"Pair via Bluetooth for richer training data.\",\"sensorBluetoothHrm\":\"Bluetooth Heart Rate Monitors\",\"sensorBluetoothHrmDetail\":\"Polar H10, Garmin HRM-Pro Plus, Wahoo TICKR, and any Bluetooth chest strap or arm band\",\"mobileTitle\":\"Mobile\",\"mobileDescription\":\"Train from your phone with the Transition app.\",\"mobileIos\":\"iOS\",\"mobileIosDetail\":\"iPhone running iOS 16 or later\",\"mobileAndroid\":\"Android\",\"mobileAndroidDetail\":\"Android 10 or later\",\"dontSeeTitle\":\"Don't see your device?\",\"dontSeeDescription\":\"If your device syncs to Strava, Garmin Connect, or Apple Health, your workouts sync into Transition automatically. For smart trainers, any Bluetooth FTMS-compatible trainer is supported.\",\"dontSeeLink\":\"Contact support to check compatibility\"},\"ironmanCoach\":{\"heroLabel\":\"IRONMAN Coaching\",\"heroTitle\":\"Your AI Ironman Coach\",\"heroDescription\":\"Train smarter for your next IRONMAN or 70.3 with an AI coach that manages volume, periodization, and race-specific preparation — personalized to your fitness, schedule, and target race.\",\"viewIronmanPlans\":\"View IRONMAN Plans\",\"view703Plans\":\"View 70.3 Plans\",\"whyAiTitle\":\"Why AI Coaching for Ironman\",\"volumeTitle\":\"Volume Management\",\"volumeDescription\":\"IRONMAN training requires careful volume progression over months. The AI tracks your training load and helps you avoid the overtraining that derails so many IRONMAN preparations.\",\"periodizationTitle\":\"Intelligent Periodization\",\"periodizationDescription\":\"Your plan follows proven periodization models — base, build, peak, taper — with each phase calibrated to your race date and current fitness level.\",\"raceSpecificTitle\":\"Race-Specific Preparation\",\"raceSpecificDescription\":\"Training adapts to your target course — open-water swim practice, terrain-matched bike work, and run sessions that mirror race-day demands.\",\"coversTitle\":\"What Your AI Coach Covers\",\"swimEnduranceTitle\":\"Swim Endurance\",\"swimEnduranceDescription\":\"Progressive open-water swim training with technique drills and threshold work.\",\"bikePowerTitle\":\"Bike Power\",\"bikePowerDescription\":\"Build sustained power for 112 or 56 miles with structured intervals and long rides.\",\"runDurabilityTitle\":\"Run Durability\",\"runDurabilityDescription\":\"Develop the run fitness to hold pace after hours of swimming and cycling.\",\"brickWork
1outsTitle\":\"Brick Workouts\",\"brickWorkoutsDescription\":\"Race-specific bike-to-run transitions that prepare your legs for race day.\",\"nutritionStrategyTitle\":\"Nutrition Strategy\",\"nutritionStrategyDescription\":\"Dial in your race-day fueling with structured nutrition rehearsals during training.\",\"taperPeakTitle\":\"Taper \u0026 Peak\",\"taperPeakDescription\":\"Arrive at the start line fresh and confident with an optimized taper protocol.\",\"upcomingRacesTitle\":\"Upcoming US IRONMAN Races\",\"upcomingRacesDescription\":\"Training for a specific race? Each race page has course-specific training tips tailored to the swim, bike, and run conditions.\",\"viewAllRaces\":\"View all {count} races\",\"fullIronmanPlanTitle\":\"Full IRONMAN Plan\",\"fullIronmanPlanDescription\":\"Periodized IRONMAN training across your full build — progressive volume, race-day rehearsals, and a structured taper for 140.6, regenerated as you train.\",\"halfIronmanPlanTitle\":\"IRONMAN 70.3 Plan\",\"halfIronmanPlanDescription\":\"Periodized 70.3 training that balances speed and endurance with smart recovery, regenerated as you train.\",\"faqTitle\":\"Frequently Asked Questions\",\"faq1Question\":\"Can AI coach me for an Ironman?\",\"faq1Answer\":\"Yes. Transition's AI coach creates personalized IRONMAN training plans that adapt to your fitness level, schedule, and target race. The AI manages training volume, periodization, recovery, and race-specific preparation — the same principles a good coach applies, available 24/7 and adjusting your plan whenever your training or schedule changes.\",\"faq2Question\":\"How is this different from a human Ironman coach?\",\"faq2Answer\":\"A human coach typically costs $200-500/month and works on a weekly check-in schedule. Transition's AI coach costs $19/month and adapts your plan as your training and schedule change. You get the same periodization science and race-specific preparation, available 24/7.\",\"faq3Question\":\"What distances does the AI coach support?\",\"faq3Answer\":\"Transition supports all triathlon distances: Sprint, Olympic, IRONMAN 70.3, and full IRONMAN 140.6. Each distance has specialized training approaches — from high-intensity work for sprints to the endurance-focused volume management needed for full IRONMAN preparation.\",\"faq4Question\":\"How does the AI handle IRONMAN volume and recovery?\",\"faq4Answer\":\"The AI monitors your training load, fatigue, and recovery metrics to progressively build volume while reducing the risk of overtraining. It schedules strategic deload weeks, manages the balance between high-volume endurance work and quality sessions, and adjusts your plan when life gets in the way — exactly what a good Ironman coach does.\"},\"analysis\":{\"aiAnalysis\":\"AI {sport} Analysis\",\"tryItFree\":\"Try It Now\",\"whatYouGet\":\"What You Get\",\"howItWorks\":\"How It Works\",\"step1Title\":\"Upload a video\",\"step1Description\":\"Record 10-30 seconds of {sport} and upload it from your camera roll.\",\"step2Title\":\"AI analyzes your technique\",\"step3Title\":\"Get personalized feedback\",\"step3Description\":\"Receive detailed written feedback, drill recommendations, and a pose overlay on a key frame when your video is clear.\",\"stepLabel\":\"Step {number}\",\"whatAiAnalyzes\":\"What Our AI Analyzes\",\"whatAiAnalyzesDescription\":\"Every upload goes through a comprehensive multi-step analysis pipeline.\",\"tipsTitle\":\"Tips for the Best Results\",\"tipsDescription\":\"Follow these guidelines to get the most accurate analysis.\"},\"swimAnalysis\":{\"sport\":\"Swim\",\"headline\":\"Upload a Video. Perfect Your Stroke.\",\"subheadline\":\"Get detailed AI-powered swim analysis. Upload a 30-second video and receive detailed feedback on every phase of your stroke — plus personalized drill recommendations.\",\"benefit1Title\":\"Stroke-by-stroke feedback\",\"benefit1Description\":\"Detailed analysis of catch, pull, recovery, and hand entry, with a pose overlay on a key frame when your video is clear.\",\"benefit2Title\":\"Personalized drill recommendations\",\"benefit2Description\":\"Targeted drills based on your specific technique gaps — so you know exactly what to work on next session.\",\"benefit3Title\":\"Track your progress\",\"benefit3Description\":\"Your past analyses are saved so you can revisit them anytime.\",\"howItWorksDescription\":\"Our AI breaks down your stroke cycle, body position, and breathing technique across key frames.\",\"step1\":\"Compress and upload your video\",\"step2\":\"Extract key frames from your stroke cycle\",\"step3\":\"Analyze catch, pull, and recovery phases\",\"step4\":\"Evaluate body position and alignment\",\"step5\":\"Assess breathing technique and timing\",\"step6\":\"Detect pose landmarks for visual overlay\",\"step7\":\"Generate personalized drill recommendations\",\"step8\":\"Finalize your analysis with top improvements\",\"practice1Title\":\"Camera Angle\",\"practice1Description\":\"Film from the side of the pool, above water. A steady, eye-level angle works best.\",\"practice2Title\":\"Lighting\",\"practice2Description\":\"Choose a well-lit pool and avoid backlighting from windows or bright lights behind you.\",\"practice3Title\":\"What to Capture\",\"practice3Description\":\"Make sure your full body is visible head-to-toe for at least one complete stroke cycle.\",\"practice4Title\":\"Video Length\",\"practice4Description\":\"Keep your video between 10 and 30 seconds of continuous swimming.\"},\"bikeAnalysis\":{\"sport\":\"Bike\",\"headline\":\"Upload a Video. Optimize Your Position.\",\"subheadline\":\"Get AI-powered aero position analysis for your bike fit. Upload a 30-second video and receive detailed feedback on torso angle, arm placement, and aerodynamic efficie
1ncy.\",\"benefit1Title\":\"Body angle analysis\",\"benefit1Description\":\"Qualitative feedback on your torso flatness, hip angle, and overall position.\",\"benefit2Title\":\"Aerodynamic feedback\",\"benefit2Description\":\"Spot drag-producing positions and get suggestions for a flatter, more aerodynamic setup.\",\"benefit3Title\":\"Track your progress\",\"benefit3Description\":\"Your past analyses are saved so you can revisit them as you dial in your fit.\",\"howItWorksDescription\":\"Our AI evaluates your torso angle, arm placement, head position, and overall aerodynamics.\",\"step1\":\"Compress and upload your video\",\"step2\":\"Extract key frames from your riding position\",\"step3\":\"Analyze torso angle and back flatness\",\"step4\":\"Evaluate head and neck positioning\",\"step5\":\"Assess arm and elbow placement\",\"step6\":\"Detect pose landmarks for visual overlay\",\"step7\":\"Generate personalized position recommendations\",\"step8\":\"Finalize your analysis with top improvements\",\"practice1Title\":\"Camera Angle\",\"practice1Description\":\"Film from a side-on view while on the trainer or road. Keep the camera at handlebar height.\",\"practice2Title\":\"Full Body Position\",\"practice2Description\":\"Make sure your full body is visible including hands on the bars, from head to feet.\",\"practice3Title\":\"Steady Camera\",\"practice3Description\":\"Use a tripod or prop your phone on a stable surface. A steady shot produces the best results.\",\"practice4Title\":\"Video Length\",\"practice4Description\":\"Keep your video between 10 and 30 seconds of steady pedaling.\"},\"runAnalysis\":{\"sport\":\"Run\",\"headline\":\"Upload a Video. Perfect Your Stride.\",\"subheadline\":\"Get AI-powered running form analysis. Upload a 30-second video and receive detailed feedback on foot strike, posture, and arm swing — plus personalized drill recommendations.\",\"benefit1Title\":\"Foot strike \u0026 form analysis\",\"benefit1Description\":\"Get form cues on your ground contact and leg turnover.\",\"benefit2Title\":\"Posture \u0026 alignment feedback\",\"benefit2Description\":\"Identify hip drop, forward lean, and arm-swing inefficiencies — with drills to address them.\",\"benefit3Title\":\"Track your progress\",\"benefit3Description\":\"Your past analyses are saved so you can revisit what you're working on.\",\"howItWorksDescription\":\"Our AI evaluates your foot strike, posture, hip alignment, and arm swing across key frames.\",\"step1\":\"Compress and upload your video\",\"step2\":\"Extract key frames from your stride\",\"step3\":\"Analyze foot strike pattern and form\",\"step4\":\"Evaluate posture and hip alignment\",\"step5\":\"Assess arm swing and shoulder position\",\"step6\":\"Detect pose landmarks for visual overlay\",\"step7\":\"Generate personalized drill recommendations\",\"step8\":\"Finalize your analysis with top improvements\",\"practice1Title\":\"Camera Angle\",\"practice1Description\":\"Film from a side view on flat ground. Keep the camera at hip height for the best perspective.\",\"practice2Title\":\"Full Body in Frame\",\"practice2Description\":\"Make sure your full body is visible from head to toe throughout the video.\",\"practice3Title\":\"Normal Running Pace\",\"practice3Description\":\"Run at your normal, comfortable pace — not a sprint and not a jog.\",\"practice4Title\":\"Video Length\",\"practice4Description\":\"Keep your video between 10 and 30 seconds of continuous running.\"},\"podcast\":{\"title\":\"The Tri Pod\",\"description\":\"Conversations about triathlon training, racing, and the endurance lifestyle.\",\"youtubePlaylistTitle\":\"The Tri Pod - YouTube Playlist\",\"viewAllYoutube\":\"View All on YouTube\"},\"ambassadors\":{\"heroLine1\":\"Welcome to\",\"heroLine2\":\"Transition Ambassadors\",\"heroDescription\":\"Join a global community of triathletes, coaches, and creators on a mission to make smart, personalized coaching accessible to every athlete.\",\"heroCta\":\"Work With Us\",\"whatIsLabel\":\"What is Transition?\",\"whatIsHeadline\":\"AI-Powered Triathlon Coaching for Every Athlete\",\"whatIsBody\":\"Transition builds personalized swim, bike, and run training plans using AI that adapts to every athlete — from first-time sprint racers to seasoned Ironman competitors. Triathletes around the world use Transition to plan their training, track performance, and hit new PBs.\",\"whatIsBullet1\":\"Personalized plans that adapt weekly to your progress\",\"whatIsBullet2\":\"Integrates with Garmin, Strava, Wahoo, and more\",\"whatIsBullet3\":\"AI coach available 24/7 for training questions\",\"whatIsImageAlt\":\"Transition app training dashboard and performance analytics\",\"whyTitle\":\"Why Become an Ambassador?\",\"whySubtitle\":\"Represent the Future of Triathlon Training\",\"why1Title\":\"Level Up Your Training\",\"why1Desc\":\"Get premium access and be the first to test new features before anyone else.\",\"why2Title\":\"Join a Global Community\",\"why2Desc\":\"Connect with athletes and creators around the world who share your passion.\",\"why3Title\":\"Earn Revenue\",\"why3Desc\":\"Get rewarded for sharing a product you believe in with your community.\",\"why4Title\":\"Get Featured\",\"why4Desc\":\"Top ambassadors are spotlighted across our channels and community.\",\"testimonial1Name\":\"Carlos Rebelo\",\"testimonial1Role\":\"Tr
1iathlete\",\"testimonial1Quote\":\"Transition has helped me improve my Ironman training more than any other method I've encountered in my triathlon journey. It's incredibly precise and personalized.\",\"footerCtaTitle\":\"Ready to represent Transition?\",\"footerCtaDescription\":\"Join our ambassador community and help athletes around the world train smarter.\",\"applyTitle\":\"Apply\",\"applySubtitle\":\"Join the Transition Ambassador Program\",\"applyDescription\":\"Tell us about yourself and how you'd promote Transition. We review applications within 48 hours.\",\"backToAmbassadors\":\"Back to Ambassadors\",\"formName\":\"Full Name\",\"formNamePlaceholder\":\"Your full name\",\"formEmail\":\"Email Address\",\"formEmailPlaceholder\":\"[email protected]\",\"formCountry\":\"Country / City\",\"formCountryPlaceholder\":\"e.g. São Paulo, Brazil\",\"formRole\":\"What best describes you?\",\"formRolePlaceholder\":\"Select your role\",\"roleAthlete\":\"Competitive triathlete / athlete\",\"roleCoach\":\"Coach / trainer\",\"roleCreator\":\"Content creator / influencer\",\"roleOrganizer\":\"Race organizer / club leader\",\"roleBlogger\":\"Blogger / podcaster / YouTuber\",\"roleOther\":\"Other\",\"formSocial\":\"Social Media / Website\",\"formSocialPlaceholder\":\"Instagram, YouTube, blog URL, Linktree, etc.\",\"formAudience\":\"Approximate Audience Size\",\"formAudiencePlaceholder\":\"Select range\",\"formEngagement\":\"How do you engage with the endurance community?\",\"formEngagementPlaceholder\":\"e.g. Race at Ironman Brazil, post training content on Instagram, run local tri club sessions\",\"formPromotion\":\"How would you promote Transition?\",\"promotionRaceDay\":\"Race-day stories \u0026 content\",\"promotionSocial\":\"Social media posts / reels\",\"promotionEmail\":\"Email newsletter / community\",\"promotionCoaching\":\"Coaching clients\",\"promotionBlog\":\"Blog / podcast / YouTube\",\"promotionOther\":\"Other\",\"promotionOtherPlaceholder\":\"Tell us how\",\"formWhyJoin\":\"Why do you want to join?\",\"formWhyJoinPlaceholder\":\"Tell us why you're excited about the Transition Ambassador Program\",\"formExistingContent\":\"Existing content about triathlon apps or AI coaching?\",\"formExistingContentPlaceholder\":\"Link to any relevant content (optional)\",\"formPayout\":\"Preferred Payout Currency\",\"formPayoutPlaceholder\":\"Select currency\",\"payoutOther\":\"Other (specify in notes)\",\"formAnythingElse\":\"Anything else?\",\"formAnythingElsePlaceholder\":\"Anything we should know\",\"formTermsPre\":\"I have read and agree to the\",\"formTermsLink\":\"Ambassador Code of Conduct\",\"formSubmit\":\"Submit Application\",\"formSubmitting\":\"Submitting...\",\"formSuccessTitle\":\"Application Received!\",\"formSuccessMessage\":\"Thanks for applying. We'll review your application and get back to you within 48 hours.\",\"formError\":\"Something went wrong. Please try again or email us at [email protected].\"},\"swimCssCalculator\":{\"title\":\"Swim CSS Calculator\",\"subtitle\":\"Estimate your Critical Swim Speed (CSS) pace from two time trials.\",\"unitsLabel\":\"Units:\",\"metersButton\":\"Meters (m)\",\"yardsButton\":\"Yards (yd)\",\"clearButton\":\"Clear\",\"test1Title\":\"Test 1\",\"test1Description\":\"Longer time trial (e.g., 400{unit})\",\"test2Title\":\"Test 2\",\"test2Description\":\"Shorter time trial (e.g., 200{unit})\",\"distanceLabel\":\"Distance ({unit})\",\"timeLabel\":\"Time\",\"minLabel\":\"Min\",\"secLabel\":\"Sec\",\"resultsTitle\":\"Results\",\"resultsDescription\":\"CSS pace and predicted times\",\"cssPaceLabel\":\"CSS Pace\",\"predicted100\":\"Predicted 100{unit}\",\"predicted200\":\"Predicted 200{unit}\",\"predicted400\":\"Predicted 400{unit}\"},\"triathlonPaceCalculator\":{\"title\":\"Triathlon Calculator\",\"subtitle\":\"Calculate your race times, paces, and total finish time.\",\"unitsLabel\":\"Units:\",\"metricButton\":\"Metric (km)\",\"imperialButton\":\"Imperial (miles)\",\"quickFillLabel\":\"Quick Fill:\",\"presetSprint\":\"Sprint\",\"presetOlympic\":\"Olympic\",\"presetT100\":\"T100\",\"preset703\":\"70.3\",\"presetIronman\":\"Ironman\",\"clearAllButton\":\"Clear All\",\"swimTitle\":\"🏊‍♀️ Swim\",\"bikeTitle\":\"🚴‍♀️ Bike\",\"runTitle\":\"🏃‍♀️ Run\",\"distanceLabel\":\"Distance ({unit})\",\"timeLabel\":\"Time\",\"hoursAbbrev\":\"H\",\"minutesAbbrev\":\"M\",\"secondsAbbrev\":\"S\",\"paceLabel\":\"Pace\",\"transitionsTitle\":\"Transitions\",\"transitionsDescription\":\"Estimated time for transitions between disciplines\",\"t1Label\":\"T1 (Swim → Bike)\",\"t2Label\":\"T2 (Bike → Run)\",\"totalRaceTimeTitle\":\"🏁 Total Race Time\",\"totalRaceTimeDescription\":\"Combined time including transitions\",\"totalFinishTime\":\"Total finish time\",\"totalTimePlaceholder\":\"Enter distances and times above to see your total race time\",\"howToUseTitle\":\"How to Use\",\"howToUseTip1\":\"• Enter distance and time for each discipline\",\"howToUseTip2\":\"• Pace is automatically calculated as you type\",\"howToUseTip3\":\"• Use race presets for common triathlon distances\",\"howToUseTip4\":\"• Adjust transition times based on your experience\",\"paceFormatsTitle\":\"Pace Formats\",\"paceFormatSwim\":\"• Swim: Time per 
1100m/100y\",\"paceFormatBike\":\"• Bike: Speed in km/h or mph\",\"paceFormatRun\":\"• Run: Time per km or mile\"},\"triathlonNutritionCalculator\":{\"title\":\"Triathlon Nutrition Calculator\",\"subtitle\":\"Build a personalized race-day fueling plan based on your body, conditions, and race distance.\",\"raceProfileTitle\":\"Race \u0026 Body\",\"raceProfileDescription\":\"Select your race and enter your weight\",\"raceTypeLabel\":\"Race Distance\",\"raceSprint\":\"Sprint Triathlon (~1.5h)\",\"raceOlympic\":\"Olympic Triathlon (~3h)\",\"race703\":\"Half Ironman 70.3 (~6h)\",\"raceIronman\":\"Ironman (~12h)\",\"raceCustom\":\"Custom Duration\",\"customBikeHours\":\"Bike (hours)\",\"customRunHours\":\"Run (hours)\",\"bodyWeightLabel\":\"Body Weight\",\"conditionsTitle\":\"Race Conditions\",\"conditionsDescription\":\"Temperature and sweat rate affect hydration needs significantly\",\"temperatureLabel\":\"Expected Temperature\",\"temp_cool\":\"Cool\",\"temp_moderate\":\"Moderate\",\"temp_warm\":\"Warm\",\"temp_hot\":\"Hot\",\"tempHint_cool\":\"Below 15°C / 59°F — lower sweat losses, standard fueling\",\"tempHint_moderate\":\"15–25°C / 59–77°F — typical race conditions\",\"tempHint_warm\":\"25–32°C / 77–90°F — increased sweat, watch GI tolerance\",\"tempHint_hot\":\"Above 32°C / 90°F — high fluid needs, consider reducing intensity\",\"sweatVolumeLabel\":\"Sweat Volume\",\"sweatVol_light\":\"Light\",\"sweatVol_moderate\":\"Moderate\",\"sweatVol_heavy\":\"Heavy\",\"sweatVolHint_light\":\"Barely damp after an hour of exercise, rarely need to wring out kit\",\"sweatVolHint_moderate\":\"Visibly sweaty during hard efforts, wet kit after long sessions\",\"sweatVolHint_heavy\":\"Dripping within minutes, soak through clothes quickly, puddles on the trainer\",\"saltLevelLabel\":\"Sweat Saltiness\",\"salt_low\":\"Low Salt\",\"salt_moderate\":\"Moderate\",\"salt_high\":\"High Salt\",\"saltHint_low\":\"Sweat rarely stings your eyes, minimal white residue on dark kit\",\"saltHint_moderate\":\"Occasional white marks on kit, some eye stinging on hot days\",\"saltHint_high\":\"Heavy white crust on kit and skin, eyes sting frequently, history of cramping\",\"estimatedSweatRate\":\"Estimated Sweat Rate\",\"mlPerHour\":\"ml/hr\",\"raceDayTotalsTitle\":\"Race Day Totals\",\"raceDayTotalsDescription\":\"Total nutrition needed across bike and run legs\",\"totalCarbs\":\"Total Carbohydrates\",\"totalFluid\":\"Total Fluid\",\"totalSodium\":\"Total Sodium\",\"gelsEquivalent\":\"gels equivalent\",\"bottlesEquivalent\":\"bottles (500ml)\",\"salt\":\"salt\",\"bikePlanTitle\":\"🚴 Bike Nutrition Plan\",\"runPlanTitle\":\"🏃 Run Nutrition Plan\",\"hoursEstimated\":\"hours estimated\",\"carbsPerHour\":\"carbs/hr\",\"fluidPerHour\":\"fluid/hr\",\"sodiumPerHour\":\"sodium/hr\",\"mlUnit\":\"ml\",\"mgUnit\":\"mg\",\"practicalPlan\":\"What to carry\",\"gels\":\"Energy gels\",\"drinkMix\":\"Drink mix\",\"fluid\":\"Fluid\",\"scoopsPerHour\":\"scoops/hr\",\"bottlesPerHour\":\"bottles/hr\",\"hourAbbrev\":\"hr\",\"legTotal\":\"Leg total\",\"carbs\":\"Carbs\",\"swimNoteTitle\":\"Swim Leg — No Fueling Needed\",\"swimNoteDescription\":\"You cannot eat or drink during the swim. Focus on proper pre-race nutrition: eat a carb-rich meal 3 hours before, and sip on a sports drink up to 15 minutes before the start.\",\"timelineTitle\":\"Race Day Fueling Timeline\",\"timelineDescription\":\"When and what to consume at each stage of your race\",\"timelinePreRace\":\"3h Before\",\"timelinePreRaceTitle\":\"Pre-Race Meal\",\"timelinePreRaceDetail\":\"Eat 1–3g carbs per kg body weight (rice, toast, oatmeal). Sip 500ml fluid with electrolytes. Stop eating solid food 2h before start. Small sports drink 15 min before.\",\"timelinePreRaceDetailPersonalized\":\"Eat {carbsLow}–{carbsHigh}g carbs (rice, toast, oatmeal). Sip {fluid}ml fluid with electrolytes. Stop eating solid food 2h before start. Small sports drink 15 min before.\",\"timelineSwim\":\"Swim\",\"timelineSwimTitle\":\"No Fueling\",\"timelineSwimDetail\":\"Focus on pacing and form. Your pre-race carbs will sustain you through this leg.\",\"timelineT1Detail\":\"Take 2–3 sips of sports drink if available. Grab your bike nutrition.\",\"timelineBike\":\"Bike\",\"timelineBikeTitle\":\"Primary Fueling Window\",\"timelineBikeDetail\":\"Target {carbs}g carbs, {fluid}ml fluid, and {sodium}mg sodium per hour. Start eating within the first 15 minutes. Set a timer every 15–20 min to stay consistent.\",\"timelineT2Detail\":\"Take a gel or a few sips if needed. Keep it quick.\",\"timelineRun\":\"Run\",\"timelineRunTitle\":\"Maintain Energy\",\"timelineRunDetail\":\"Target {carbs}g carbs and {fluid}ml fluid per hour. Use aid stations. Take small, frequent sips — your gut is more sensitive on the run.\",\"resultsPlaceholder\":\"Enter your body weight above to see your personalized nutrition plan\",\"t
1ipsTitle\":\"Fueling Tips\",\"tip1\":\"• Practice your nutrition plan in training — never try anything new on race day\",\"tip2\":\"• Train your gut to tolerate higher carb intake over weeks\",\"tip3\":\"• Front-load calories on the bike — it's easier to eat and absorb while cycling\",\"tip4\":\"• If your stomach rebels on the run, switch to liquid calories only\",\"tip5\":\"• Caffeine (3–6mg/kg) 45 min before the run leg can boost late-race performance\",\"scienceTitle\":\"The Science\",\"science1\":\"• Dual-transport carbs (glucose + fructose) allow absorption up to 90–120g/hr\",\"science2\":\"• Sodium losses range from 200–1500mg/L of sweat — highly individual\",\"science3\":\"• Dehydration above 2–3% body weight significantly impairs performance\",\"science4\":\"• GI distress is one of the most common reasons triathletes underperform or DNF in long-course racing — train your gut\"},\"wattsPerKgCalculator\":{\"title\":\"Watts Per Kilogram Calculator\",\"subtitle\":\"Compute your power-to-weight ratio using your weight and FTP.\",\"yourInputsTitle\":\"Your Inputs\",\"yourInputsDescription\":\"Enter body weight and FTP.\",\"weightLabel\":\"Weight\",\"ftpLabel\":\"FTP (W)\",\"ctaText\":\"Use AI-powered planning, training, and analysis tools to increase your performance.\",\"learnMore\":\"Learn more\",\"yourResultsTitle\":\"Your Results\",\"yourResultsDescription\":\"Power-to-weight ratio and percentile\",\"wattsPerKgUnit\":\"Watts/kg\",\"percentileText\":\"{ordinal} percentile vs. a typical adult-cyclist reference range.\",\"percentilePlaceholder\":\"Enter weight and FTP to see your percentile.\",\"groupAll\":\"All\",\"groupMale\":\"Male\",\"groupFemale\":\"Female\",\"categoryBeginner\":\"Beginner\",\"categoryNovice\":\"Novice\",\"categoryIntermediate\":\"Intermediate\",\"categoryAdvanced\":\"Advanced\",\"categoryElite\":\"Elite\",\"exampleBeginner\":\"Beginner (~1.5 W/kg)\",\"exampleNovice\":\"Novice (~2.5 W/kg)\",\"exampleIntermediate\":\"Intermediate (~3.5 W/kg)\",\"exampleAdvanced\":\"Advanced (~4.5 W/kg)\",\"exampleElite\":\"Elite (≥5.0 W/kg)\",\"raceFasterCta\":\"Race Faster with Transition\",\"learnMoreButton\":\"Learn More\"},\"trainingPlanGenerator\":{\"title\":\"Training Plan Generator\",\"subtitle\":\"Generate a personalized training plan based on your race goals and fitness level.\",\"raceSelectionTitle\":\"Race Selection\",\"raceSelectionDescription\":\"Choose your target race type and date\",\"raceTypeLabel\":\"Race Type\",\"raceTypePlaceholder\":\"Select a race type\",\"raceTypeSprint\":\"Sprint Triathlon\",\"raceTypeOlympic\":\"Olympic Triathlon\",\"raceType703\":\"70.3 Half Ironman\",\"raceTypeIronman\":\"Ironman\",\"raceTypeMarathon\":\"Marathon\",\"raceTypeHalfMarathon\":\"Half Marathon\",\"raceType10k\":\"10K\",\"raceType5k\":\"5K\",\"raceDateLabel\":\"Race Date (Optional)\",\"fitnessMetricsTitle\":\"Current Fitness Metrics\",\"fitnessMetricsDescription\":\"Enter your current fitness levels (leave blank if unknown)\",\"unitsLabel\":\"Units:\",\"metricButton\":\"Metric\",\"imperialButton\":\"Imperial\",\"ftpLabel\":\"FTP (Watts)\",\"ftpPlaceholder\":\"e.g. 180\",\"thresholdPaceLabel\":\"Threshold Pace ({unit})\",\"thresholdPacePlaceholderMetric\":\"e.g. 4:30\",\"thresholdPacePlaceholderImperial\":\"e.g. 7:15\",\"thresholdHRLabel\":\"Threshold HR (bpm)\",\"thresholdHRPlaceholder\":\"e.g. 165\",\"cssLabel\":\"CSS (Critical Swim Speed)\",\"cssPlaceholderMetric\":\"e.g. 1:25/100m\",\"cssPlaceholderImperial\":\"e.g. 1:25/100y\",\"preferencesTitle\":\"Training Preferences\",\"preferencesDescription\":\"Tell us about any constraints or preferences for your training\",\"preferencesPlaceholder\":\"e.g. Limited to gym equipment 2 weeks out of every 3 due to travel, prefer morning workouts, have access to pool 3x per week...\",\"generateButton\":\"Generate Training Plan\",\"generatingPlan\":\"Generating Plan...\",\"generatingHint\":\"Hang tight, this takes about a minute\",\"alertSelectRaceType\":\"Please select a race type\",\"calendarTitle\":\"Your Personalized 4-Week Training Plan\",\"calendarDescription\":\"Generated training schedule based on your inputs\",\"weekLabel\":\"Week {number}\",\"ctaTitle\":\"Want a Fully Adaptive Training Plan?\",\"ctaSubtitle\":\"This 4-week plan is just the beginning. Get a fully adaptive plan that evolves with your progress, all the way to race day.\",\"featureIndoorTrainerTitle\":\"Indoor Trainer Support\",\"featureIndoorTrainerDescription\":\"Connect to your smart trainer for structured sessions with real-time power control, so every minute on the bike moves you closer to race day goals.\",\"featureSmartWatchTitle\":\"Smart Watch Integration\",\"featureSmartWatchDescription\":\"Push structured workouts to Garmin and Wahoo, and sync automatically to Apple Watch—so you train with guided prompts and targets.\",\"featureNutritionTitle\":\"Nutrition Guidance\",\"featureNutritionDescription\":\"Get nutrition guidance for each session—what to eat before, during, and after, built around your training.\",\"featureSmartRecoveryTitle\":\"Smart Recovery\",\"featureSmartRecoveryDescription\":\"Guided warm-ups and post-session recovery built into every workout keep your body resilient and ready for the next session.\",\"featureAdaptivePlanningTitle\":\"Adaptive Planning\",\"featureAdaptivePlanningDescription\":\"Your plan adapts based on your progress and life changes—so you always stay on track to your goals.\",\"featureRaceDayReadyTitle\":\"Race-Day Ready\",\"featureRaceDayReadyDescription\":\"Fine-tuned taper and recovery phases so you hit the start line fresh, sharp, and primed to perform at your peak.\"},\"meta\":{\"about\":{\"title\":\"About Us - Transition Triathlon Training\",\"description\":\"Learn about the founder behind Transition, the AI-powered triathlon training app. Our mission is to make smart, personalized coaching accessible to every athlete.\"},\"ambassadors\":{\"title\":\"Ambassador Program - Transition\",\"description\":\"Join the Transition Ambassador Program and help spread the word about triathlon training excellence. Get exclusive benef
1its and early access to new features.\"},\"bikeAnalysis\":{\"title\":\"AI Bike Position Analysis - Aero Fit Feedback for Triathletes\",\"description\":\"Upload a 30-second bike video and get AI-powered aero position analysis. Detailed feedback on torso angle, arm placement, aerodynamics, and personalized position adjustments.\"},\"blog\":{\"title\":\"Triathlon Training Blog - AI-Powered Insights \u0026 Expert Tips\",\"description\":\"Expert triathlon training articles, AI coaching insights, and performance optimization tips. Get the latest strategies for swim, bike, and run training from Transition.\"},\"coach\":{\"title\":\"Meet Your AI Triathlon Coach - Transition\",\"description\":\"Get personalized guidance from an AI coach that learns, adapts, and helps you achieve your triathlon goals. Available 24/7.\"},\"compatibleDevices\":{\"title\":\"Compatible Devices \u0026 Apps - Transition Triathlon Training\",\"description\":\"See every watch, bike computer, smart trainer, and app that works with Transition. Garmin, Apple Watch, Wahoo, Zwift, Strava, and more.\"},\"download\":{\"title\":\"Download Transition App - Triathlon Training\",\"description\":\"Get the Transition app and optimize your triathlon training with AI-powered adaptive plans. Available on iOS and Android. Start getting faster today!\"},\"home\":{\"title\":\"Transition | The smartest way to train for a triathlon\",\"description\":\"Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!\",\"titleTemplate\":\"%s | Transition\"},\"faq\":{\"title\":\"FAQ - Transition Triathlon Training\",\"description\":\"Find answers to common questions about Transition AI triathlon coaching, training plans, device integrations, and how our personalized training works.\"},\"features\":{\"title\":\"Features - AI Triathlon Training Platform\",\"description\":\"Discover Transition's AI-powered features: adaptive training plans, real-time coaching, performance analytics, Garmin and Apple Watch sync, and more for triathlon training.\"},\"feedback\":{\"title\":\"Feedback - Help Us Improve Transition\",\"description\":\"Share your feedback and help us make Transition better for everyone. Your thoughts and suggestions are invaluable to improving our triathlon training app.\"},\"freeTrial\":{\"title\":\"Start Getting Faster - Transition Triathlon Training\",\"description\":\"Start your free trial of Transition and get AI-powered triathlon training plans, personalized workouts, and performance analytics. No charge until your trial ends — cancel anytime.\"},\"howItWorks\":{\"title\":\"How It Works - AI-Powered Triathlon Training Process\",\"description\":\"Learn how Transition's AI creates personalized triathlon training plans. Connect your watch, set your goals, and get adaptive swim, bike, and run workouts.\"},\"ironmanCoach\":{\"title\":\"Ironman Coach - AI Triathlon Training\",\"description\":\"Get personalized Ironman coaching powered by AI. Custom training plans, workout guidance, and race preparation for your next Ironman triathlon.\"},\"pricing\":{\"title\":\"Pricing - Affordable AI Triathlon Coaching\",\"description\":\"AI-powered triathlon coaching from $19/month. Adaptive workouts, analytics, and a 24/7 AI coach. Start getting faster today!\"},\"privacy\":{\"title\":\"Privacy Policy - Transition Triathlon Training\",\"description\":\"Read Transition's privacy policy. Learn how we collect, use, and protect your personal data and training information.\"},\"runAnalysis\":{\"title\":\"AI Run Form Analysis - Stride \u0026 Gait Feedback for Triathletes\",\"description\":\"Upload a 30-second running video and get AI-powered form analysis. Detailed feedback on foot strike, posture, hip alignment, arm swing, and personalized drill recommendations.\"},\"subscriptionCancelled\":{\"title\":\"Subscription Required - Transition\",\"description\":\"Your subscription has been cancelled. Resubscribe anytime to continue your personalized AI triathlon training with Transition.\"},\"subscriptionSuccess\":{\"title\":\"Subscription Activated - Transition\",\"description\":\"Your subscription has been successfully activated. Navigate back to the app to start your personalized triathlon training with AI-powered workouts.\"}
1,\"support\":{\"title\":\"Support - Get Help with Transition\",\"description\":\"Need help with Transition? Contact our support team for assistance with your triathlon training, account, or technical issues.\"},\"swimAnalysis\":{\"title\":\"AI Swim Analysis - Video Stroke Feedback for Triathletes\",\"description\":\"Upload a 30-second swim video and get detailed AI stroke analysis. Detailed feedback on catch, pull, recovery, body position, and personalized drill recommendations.\"},\"swimCssCalculator\":{\"title\":\"Swim CSS Calculator | Transition\",\"description\":\"Compute your Critical Swim Speed (CSS) pace from two time trials (e.g., 400 and 200). See CSS per 100 and predicted 100/200/400 times for meters or yards.\"},\"terms\":{\"title\":\"Terms of Service - Transition Triathlon Training\",\"description\":\"Read Transition's terms of service. Understand the rules and guidelines for using our AI-powered triathlon training platform.\"},\"trainingPlanGenerator\":{\"title\":\"Free AI Training Plan Generator | Triathlon, Ironman \u0026 Marathon Plans | Transition\",\"description\":\"Generate personalized 4-week training plans for triathlon, Ironman, marathon, and endurance races. AI-powered custom workout plans based on your fitness level, race goals, and schedule. Free training plan generator with swim, bike, run, and strength workouts.\"},\"trainingPlansHalfIronman\":{\"title\":\"Half Ironman Training Plan - 70.3 AI Program\",\"description\":\"Master the 70.3 distance with our AI-powered Half Ironman training plan. Perfect balance of speed and endurance for your best 70.3 race. Start training today.\"},\"trainingPlansIronman\":{\"title\":\"Ironman Training Plan - 140.6 AI Program\",\"description\":\"Conquer your first or fastest Ironman with our AI-powered 140.6 training plan. Smart volume progression, recovery optimization, and race-day preparation.\"},\"trainingPlans\":{\"title\":\"Training Plans - Personalized Triathlon Programs\",\"description\":\"AI-powered triathlon training plans for Sprint, Olympic, 70.3, and Ironman distances. Adaptive programs that fit your schedule and goals. Start getting faster today!\"},\"trainingPlansLongevity\":{\"title\":\"Longevity Training Plan - Lifelong Fitness AI Program\",\"description\":\"Stay active for life with our longevity-focused training plan. Sustainable fitness, strength, mobility, and long-term wellness for lifelong athletes.\"},\"trainingPlansOlympic\":{\"title\":\"Olympic Triathlon Training Plan - Standard Distance AI Program\",\"description\":\"Excel at Olympic distance triathlon with our AI-powered training plan. Balanced speed and endurance for 1.5km swim, 40km bike, 10km run. Train smarter, race faster.\"},\"trainingPlansOther\":{\"title\":\"Custom Training Plans - Personalized AI Programs\",\"description\":\"Get a completely customized triathlon training plan tailored to your unique goals, schedule, and fitness level with AI-powered personalization.\"},\"trainingPlansSprint\":{\"title\":\"Sprint Triathlon Training Plan - Short Course AI Program\",\"description\":\"Dominate sprint distance triathlon with our AI-powered training plan. Speed-focused program for 750m swim, 20km bike, 5km run. Perfect for beginners and speed seekers.\"},\"triathlonPaceCalculator\":{\"title\":\"Triathlon Pace Calculator | Transition\",\"description\":\"Calculate swim, bike, and run paces plus total race time with transitions. Supports metric/imperial units and presets for Sprint, Olympic, T100, 70.3, and Ironman.\"},\"triathlonNutritionCalculator\":{\"title\":\"Triathlon Nutrition Calculator | Transition\",\"description\":\"Build a personalized race-day fueling plan for triathlon. Calculate carbs, hydration, and sodium needs based on race distance, body weight, temperature, and sweat rate.\"},\"unsubscribed\":{\"title\":\"Successfully Unsubscribed - Transition\",\"description\":\"You have been successfully unsubscribed from our email notifications. You can resubscribe anytime or continue using the Transition triathlon training app.\"},\"wattsPerKilogramCalculator\":{\"title\":\"Watts Per Kilogram Calculator | Transition\",\"description\":\"Calculate your watts per kilogram (W/kg) from weight and power (FTP or average power). Supports metric and imperial units with helpful guidance.\"},\"coaching\":{\"title\":\"Transition for Coaches | AI-Native Coaching Platform\",\"description\":\"Coach with better context, stronger AI tools, and a connected athlete experience. Review training, ask questions, update plans, and keep your judgment in control.\"}
1,\"raceChecklist\":{\"title\":\"Triathlon Race Day Checklist | Transition\",\"description\":\"Build and customize your triathlon race-day checklist — race essentials, swim, transitions, bike, run, and post-race gear. Add or remove items, split or combine your transition zones, and tick it off on race morning. Free.\"},\"opencycle\":{\"title\":\"OpenCycle + Transition — Your Training Plan, On the Bike\",\"description\":\"Connect Transition to OpenCycle and today's session is waiting on your handlebars. Ride real race courses, and your plan adapts to every ride you finish.\"},\"wetsuitCalculator\":{\"title\":\"Wetsuit Legal Temperature Calculator\",\"description\":\"Check whether a wetsuit is legal, required or banned for your triathlon under World Triathlon, USA Triathlon and IRONMAN rules, including the cold-air adjustment.\"},\"bikeGearingCalculator\":{\"title\":\"Bike Gearing Calculator for Climbs\",\"description\":\"Find the cadence your easiest gear gives you on a climb, from your power, weight and gradient, and the exact sprocket that would fix it. Free, no sign-up.\"},\"raceJetLagCalculator\":{\"title\":\"Race Jet Lag Calculator: When to Arrive\",\"description\":\"Work out how many nights before a race in another time zone to arrive, and what a 4 a.m. race-morning alarm will feel like to your body. Free, no sign-up.\"}},\"coaching\":{\"nav\":{\"features\":\"Features\",\"pricing\":\"Pricing\",\"support\":\"Support\",\"requestDemo\":\"Request a Demo\"},\"hero\":{\"badge\":\"FOR COACHES\",\"title\":\"Save time writing plans.\",\"titleAccent\":\"Spend more time coaching.\",\"subtitle\":\"AI generates individualized training plans for each athlete based on their goals, fitness, and schedule. You stay in control.\",\"cta\":\"Request a Demo\",\"secondaryCta\":\"See Pricing\",\"stat1Value\":\"$$19\",\"stat1Label\":\"per athlete / month\",\"stat2Value\":\"0\",\"stat2Label\":\"coaching fees\",\"stat3Value\":\"24/7\",\"stat3Label\":\"AI assistance\"},\"dashboard\":{\"title\":\"YOUR COMMAND CENTER\",\"subtitle\":\"See every athlete at a glance\",\"description\":\"A dashboard to monitor athlete progress, training load, and compliance — so you can focus on what matters: coaching.\",\"imageAlt\":\"Transition Coach Dashboard showing weekly training calendar with workouts\"},\"features\":{\"title\":\"BUILT FOR COACHES\",\"subtitle\":\"Everything you need to scale\",\"aiPlansTitle\":\"AI-Generated Plans\",\"aiPlansDesc\":\"AI generates individualized plans for each athlete based on their goals, fitness level, and schedule — you review and adjust.\",\"athleteUxTitle\":\"Best Athlete UX\",\"athleteUxDesc\":\"Your athletes get a beautiful, mobile-first app with workout tracking, performance analytics, AI coaching chat, and nutrition logging.\",\"insightsTitle\":\"AI-Powered Insights\",\"insightsDesc\":\"See training load, workout compliance, and recent activity for every athlete at a glance, so you can quickly spot who needs your attention.\",\"noMinimumsTitle\":\"No Minimums\",\"noMinimumsDesc\":\"Add or remove athletes anytime. No contracts, no commitment. Simple, transparent pricing that scales with your business.\",\"deviceSyncTitle\":\"Device Sync\",\"deviceSyncDesc\":\"Athletes connect Garmin, Apple Watch, Strava, and more, and their activities sync automatically.\",\"whitelabelTitle\":\"Your Brand\",\"whitelabelDesc\":\"Your athletes train in a polished, mobile-first app while you stay in control of every plan.\"},\"pricing\":{\"title\":\"SIMPLE PRICING\",\"subtitle\":\"No coaching fees. No minimums.\",\"price\":\"$$19\",\"perAthlete\":\"per athlete / month\",\"description\":\"Simple, transparent pricing. Add or remove athletes anytime.\",\"feature1\":\"AI-generated training plans\",\"feature2\":\"Full athlete dashboard and analytics\",\"feature3\":\"Athlete training-load and compliance insights\",\"feature4\":\"Garmin, Apple Watch, Strava sync\",\"feature5\":\"Athlete mobile app (iOS \u0026 Android)\",\"feature6\":\"Nutrition and weight tracking\",\"feature7\":\"Race predictions and periodization\",\"feature8\":\"No contracts or minimums\",\"cta\":\"Request a Demo\",\"volumeNote\":\"Volume discounts available for 20+ athletes\"},\"migration\":{\"title\":\"SWITCHING IS EASY\",\"subtitle\":\"Moving from TrainingPeaks or TriDot?\",\"description\":\"Tell us about your roster and we'll handle the migration. Plus, your athletes get 6 months free when you switch.\",\"freeMonths\":\"6 months free\",\"forAthletes\":\"for your athletes when you switch\",\"step1\":\"Request a demo\",\"step2\":\"We import your athlete roster\",\"step3\":\"Athletes download the app\",\"step4\":\"AI generates each athlete's plan\",\"cta\":\"Start the switch\"},\"demo\":{\"title\":\"GET STARTED\",\"subtitle\":\"Request a demo\",\"description\":\"See how Transition can transform your coaching business. We'll walk you through the platform and answer any questions.\",\"nameLabel\":\"Full Name\",\"namePlaceholder\":\"Your name\",\"emailLabel\":\"Email\",\"emailPlaceholder\":\"[email protected]\",\"athleteCountLabel\":\"Number of Athletes\",\"athleteCountPlaceholder\":\"How many athletes do you coach?\",\"currentPlatformLabel\":\"Current Platform\",\"currentPlatformPlaceholder\":\"e.g. TrainingPeaks, TriDot, Excel\",\"messageLabel\":\"Anything else?\",\"messagePlaceholder\":\"Tell us about your coaching business...\",\"submit\":\"Request Demo\",\"sending\":\"Sending...\",\"successTitle\":\"We'll be in touch!\",\"successMessage\":\"Thanks for your interest. We'll reach out within 24 hours to schedule your demo.\",\"errorMessage\":\"Something went wrong. Please email us at [email protected]\"}},\"trainingPlanPages\":{\"sprint\":{\"badge\":\"SPRINT\",\"eyebrow\":\"8–12 week program\",\"headlineStart\":\"Sprint triathlon plans that \",\"headlineHighlight\"
1:\"put you on the podium\",\"headlineEnd\":\"\",\"subhead\":\"Short-course racing rewards precision: clean technique, repeatable intervals, and seconds saved in transition. Your AI coach builds the exact week that gets you fast — without burning you out.\",\"trustNote\":\"from real triathletes\",\"swimDistance\":\"750 m swim\",\"bikeDistanceMetric\":\"20 km bike\",\"bikeDistanceImperial\":\"12 mi bike\",\"runDistanceMetric\":\"5 km run\",\"runDistanceImperial\":\"3.1 mi run\",\"weeksRange\":\"8–12 weeks\",\"vp1Title\":\"Speed work that sticks\",\"vp1Desc\":\"VO2 and threshold sessions calibrated to your current zones — not a generic template.\",\"vp2Title\":\"Race-specific bricks\",\"vp2Desc\":\"Bike-to-run sessions every week so you stop blowing up in T2.\",\"vp3Title\":\"Fits a 6-hour week\",\"vp3Desc\":\"Even a busy week gets you race-ready — quality over quantity.\",\"vp4Title\":\"Race-week, dialed\",\"vp4Desc\":\"Taper, pacing strategy, and warm-up routine handed to you on race morning.\",\"p1Title\":\"A plan that learns you\",\"p1Desc\":\"On day one the AI reads your training history, sets your zones, and writes your first weeks. As you train, it reads what you actually did and generates your upcoming sessions.\",\"p1b1\":\"Adaptive load based on your training stress and how you logged each session\",\"p1b2\":\"Send any workout to your Garmin or trainer with a tap\",\"p1b3\":\"Skipped session? It rebuilds the week instead of guilt-tripping you\",\"p1b4\":\"Chat with your AI coach any time for advice or swaps\",\"p2Title\":\"Sharper swim, faster run\",\"p2Desc\":\"The AI emphasizes your limiters — adding focused run or swim work where you need it most — without dropping the others.\",\"p2b1\":\"Drill-led swim sessions with effort anchored to your CSS\",\"p2b2\":\"Bike intervals that hit specific power targets, indoor or out\",\"p2b3\":\"Run progressions that build top-end speed and durability\",\"p2b4\":\"Strength and mobility built into your week, not bolted on\",\"p3Title\":\"Confidence on race day\",\"p3Desc\":\"In the final block your AI coach shifts to race rehearsal — pacing, fueling, transitions, brick efforts — so race morning feels like another Tuesday.\",\"p3b1\":\"Race-day pacing plan built from your recent training and predicted splits\",\"p3b2\":\"Fueling and hydration guidance for your race distance\",\"p3b3\":\"Smart taper that arrives at the line fresh, not flat\",\"p3b4\":\"Transition checklist + warm-up routine on race morning\",\"sampleWeekIntro\":\"A typical mid-block week. Yours will look different — the AI picks every session based on your fitness, sleep, and how you felt yesterday.\",\"swMon1Label\":\"Technique + drills\",\"swMon1Min\":\"30–40 min\",\"swMon2Label\":\"Mobility\",\"swMon2Min\":\"10 min\",\"swTue1Label\":\"Threshold intervals\",\"swTue1Min\":\"45–60 min\",\"swTue2Label\":\"Brick run\",\"swTue2Min\":\"10–15 min\",\"swWed1Label\":\"Recovery run\",\"swWed1Min\":\"30 min\",\"swWed2Label\":\"Optional strength\",\"swWed2Min\":\"15 min\",\"swThu1Label\":\"Speed sets\",\"swThu1Min\":\"30–40 min\",\"swThu2Label\":\"Tempo\",\"swThu2Min\":\"30–40 min\",\"swFri1Label\":\"Mobility or rest\",\"swFri1Min\":\"\",\"swSat1Label\":\"Endurance\",\"swSat1Min\":\"60–90 min\",\"swSun1Label\":\"Intervals or progression\",\"swSun1Min\":\"35–45 min\",\"wc1Title\":\"Adaptive weekly plan\",\"wc1Desc\":\"Reshaped as you train based on what you actually did and logged.\",\"wc2Title\":\"Swim technique first\",\"wc2Desc\":\"Drill-led sessions with effort anchored to your real CSS — not guesses.\",\"wc3Title\":\"VO2 + threshold work\",\"wc3Desc\":\"Sharp intervals targeting the energy systems sprint races demand.\",\"wc4Title\":\"Brick workouts\",\"wc4Desc\":\"Weekly bike-to-run combos so your legs remember what to do in T2.\",\"wc5Title\":\"Race-week taper\",\"wc5Desc\":\"A taper that arrives fresh, not flat — plus warm-up and pacing.\",\"wc6Title\":\"Fueling + hydration\",\"wc6Desc\":\"Carbs/hour and sodium guidance for your race distance.\"},\"olympic\":{\"badge\":\"OLYMPIC\",\"eyebrow\":\"12–16 week program\",\"headlineStart\":\"Olympic-distance plans that \",\"headlineHighlight\"
1:\"deliver a smarter PR\",\"headlineEnd\":\"\",\"subhead\":\"The classic test of fitness. Build durable speed and pace control with an AI coach that periodizes the right block at the right time — and adapts every week to what your body is telling you.\",\"trustNote\":\"from real triathletes\",\"swimDistanceMetric\":\"1.5 km swim\",\"swimDistanceImperial\":\"0.93 mi swim\",\"bikeDistanceMetric\":\"40 km bike\",\"bikeDistanceImperial\":\"24.8 mi bike\",\"runDistanceMetric\":\"10 km run\",\"runDistanceImperial\":\"6.2 mi run\",\"weeksRange\":\"12–16 weeks\",\"vp1Title\":\"Race-pace precision\",\"vp1Desc\":\"Dial in 10K and bike power targets you can actually sustain — no blow-ups at the 6K mark.\",\"vp2Title\":\"Periodized blocks\",\"vp2Desc\":\"Base → build → peak → race. Each block targets a different system without breaking the next.\",\"vp3Title\":\"Time-respecting\",\"vp3Desc\":\"6–12 hours a week, your call. The AI prioritizes what matters most for your race date.\",\"vp4Title\":\"Peak on race day\",\"vp4Desc\":\"Smart taper, course-specific pacing, and fueling plan dropped on race morning.\",\"p1Title\":\"A plan that reshapes weekly\",\"p1Desc\":\"The AI reads your completed workouts and how you've been feeling, then generates your upcoming sessions as you train. No more PDFs that go stale by week 3.\",\"p1b1\":\"Send tomorrow's workout to your watch with a tap\",\"p1b2\":\"Skipped a key session? The week rebalances around it\",\"p1b3\":\"Race date locked: AI works backward and protects your peak\",\"p1b4\":\"Ask your coach in chat: \\\"Can I swap Wednesday to Friday?\\\" — done.\",\"p2Title\":\"Race-specific quality\",\"p2Desc\":\"Olympic distance demands precision — too hard early and you blow up; too easy and the run hurts. The AI prescribes intervals at exact zones based on your real FTP and threshold pace.\",\"p2b1\":\"Bike threshold and tempo sessions calibrated to your FTP\",\"p2b2\":\"10K-specific run intervals progressing to race pace\",\"p2b3\":\"Weekly bricks so your legs learn the transition\",\"p2b4\":\"Open-water and pool sessions with effort anchored to your real CSS\",\"p3Title\":\"Recovery that actually works\",\"p3Desc\":\"Overcooked at week 10 is one of the biggest reasons athletes underperform on race day. The AI tracks your load and flags when to back off.\",\"p3b1\":\"TSS and freshness tracked every day\",\"p3b2\":\"The AI eases your load when your training stress signals you need recovery\",\"p3b3\":\"Your training load and freshness factored into every session\",\"p3b4\":\"Strength and mobility kept consistent, not crammed\",\"sampleWeekIntro\":\"A balanced mid-build week. Yours will look different — every session is selected for you.\",\"swMon1Label\":\"Endurance + drills\",\"swMon1Min\":\"40–50 min\",\"swMon2Label\":\"Mobility\",\"swMon2Min\":\"10 min\",\"swTue1Label\":\"Threshold\",\"swTue1Min\":\"60 min\",\"swTue2Label\":\"Run off the bike\",\"swTue2Min\":\"15–20 min\",\"swWed1Label\":\"Endurance run\",\"swWed1Min\":\"40–50 min\",\"swWed2Label\":\"Strength\",\"swWed2Min\":\"20 min\",\"swThu1Label\":\"Tempo\",\"swThu1Min\":\"50–60 min\",\"swThu2Label\":\"Optional easy\",\"swThu2Min\":\"20–30 min\",\"swFri1Label\":\"Yoga or rest\",\"swFri1Min\":\"20 min\",\"swSat1Label\":\"Long ride\",\"swSat1Min\":\"90–120 min\",\"swSun1Label\":\"Progression run\",\"swSun1Min\":\"45–60 min\",\"wc1Title\":\"Adaptive weekly plan\",\"wc1Desc\":\"Reshaped as you train based on your data and how you logged each session.\",\"wc2Title\":\"Race-pace work\",\"wc2Desc\":\"Threshold, tempo, and 10K-specific intervals at zones from your real numbers.\",\"wc3Title\":\"Weekly bricks\",\"wc3Desc\":\"Bike-to-run combos every week so your legs learn the transition.\",\"wc4Title\":\"Smart load management\",\"wc4Desc\":\"Training load and freshness factored in — the AI eases off before you cook yourself.\",\"wc5Title\":\"Race-week strategy\",\"wc5Desc\":\"Pacing, fueling, and taper handed to you on race morning.\",\"wc6Title\":\"Strength + mobility\",\"wc6Desc\":\"Built into your week — keeps you durable, not bolted on as homework.\"},\"halfIronman\":{\"badge\":\"70.3\",\"eyebrow\":\"16–24 week program\",\"headlineStart\":\"IRONMAN 70.3 plans that \",\"headlineHighlight\"
1:\"build strength without breaking you\",\"headlineEnd\":\"\",\"subhead\":\"Long-course racing is won between the workouts. Your AI coach scales volume smartly, protects recovery, and rehearses the race-day plan — so you arrive sharp and finish strong.\",\"trustNote\":\"from real long-course athletes\",\"swimDistanceMetric\":\"1.9 km swim\",\"swimDistanceImperial\":\"1.2 mi swim\",\"bikeDistanceMetric\":\"90 km bike\",\"bikeDistanceImperial\":\"56 mi bike\",\"runDistanceMetric\":\"21.1 km run\",\"runDistanceImperial\":\"13.1 mi run\",\"weeksRange\":\"16–24 weeks\",\"vp1Title\":\"Smart volume\",\"vp1Desc\":\"Progressive long rides and bricks — never more than your body and life can absorb.\",\"vp2Title\":\"Strength + mobility\",\"vp2Desc\":\"Built into your week so you absorb the block instead of breaking down halfway through.\",\"vp3Title\":\"Recovery-first\",\"vp3Desc\":\"Your training load and freshness drive every session. Burnout is the silent PR killer.\",\"vp4Title\":\"Confident race execution\",\"vp4Desc\":\"Nutrition, pacing, and taper rehearsed — race day feels familiar, not scary.\",\"p1Title\":\"Long-course volume, smartly absorbed\",\"p1Desc\":\"A 70.3 demands real hours — but more hours alone don't make you faster. The AI builds progressive long days, drops a deload when you need one, and keeps your other quality intact.\",\"p1b1\":\"Long Saturday rides progress block-by-block — never random\",\"p1b2\":\"The AI eases your load when your training stress signals you need it\",\"p1b3\":\"Bricks built in so the run off the bike feels natural\",\"p1b4\":\"You see your upcoming sessions; the AI works backward from your race date to time each phase\",\"p2Title\":\"Bike-to-run, finally dialed\",\"p2Desc\":\"The marathon-pace run after a 90-km bike is what makes 70.3 hard. Brick workouts every week train your legs to keep moving when the bike says stop.\",\"p2b1\":\"Weekly bricks at race-relevant intensities\",\"p2b2\":\"Bike intervals that hold race power without crushing the legs\",\"p2b3\":\"Run sessions that defend pace under fatigue\",\"p2b4\":\"Fueling rehearsed inside the workouts, not figured out on race day\",\"p3Title\":\"A race-day plan, not a wish\",\"p3Desc\":\"On race week you get a pacing strategy, hydration plan, and fueling timeline based on your fitness and race distance. No more \\\"I'll go by feel\\\" — feel lies at km 60.\",\"p3b1\":\"Race-day pacing for swim, bike, and run separately\",\"p3b2\":\"Carbs/hour and sodium guidance for your race distance\",\"p3b3\":\"Terrain-aware training — tell us your course is hilly and your build leans into climbs\",\"p3b4\":\"A taper that arrives fresh, not flat — proven structure\",\"sampleWeekIntro\":\"A mid-block week ~12 weeks out from race day. Yours adapts to your fitness and schedule.\",\"swMon1Label\":\"Endurance\",\"swMon1Min\":\"45–60 min\",\"swMon2Label\":\"Mobility\",\"swMon2Min\":\"15 min\",\"swTue1Label\":\"Sweet spot\",\"swTue1Min\":\"75–90 min\",\"swTue2Label\":\"Optional easy\",\"swTue2Min\":\"20 min\",\"swWed1Label\":\"Endurance run\",\"swWed1Min\":\"50–60 min\",\"swWed2Label\":\"Strength\",\"swWed2Min\":\"20 min\",\"swThu1Label\":\"Tempo sets\",\"swThu1Min\":\"40–50 min\",\"swThu2Label\":\"Tempo\",\"swThu2Min\":\"60 min\",\"swFri1Label\":\"Yoga or rest\",\"swFri1Min\":\"20 min\",\"swSat1Label\":\"Long ride\",\"swSat1Min\":\"2.5–3.5 hr\",\"swSun1Label\":\"Steady long run\",\"swSun1Min\":\"60–75 min\",\"wc1Title\":\"Periodized 16–24 weeks\",\"wc1Desc\":\"Base, build, peak, race blocks — locked to your race date.\",\"wc2Title\":\"Long-day progression\",\"wc2Desc\":\"Saturday rides build smartly toward race distance, not randomly.\",\"wc3Title\":\"Weekly bricks\",\"wc3Desc\":\"Bike-to-run combos so race-day legs aren't a surprise.\",\"wc4Title\":\"Fueling rehearsal\",\"wc4Desc\":\"Carbs/hour and sodium targets practiced in training, not on race day.\",\"wc5Title\":\"Strength + durability work\",\"wc5Desc\":\"Two short sessions a week that hold up through the long block.\",\"wc6Title\":\"Terrain-aware training\",\"wc6Desc\":\"Training tuned to your declared terrain and your real fitness.\",\"raceSectionTitle\":\"Train for your 70.3\",\"raceSectionSubtitle\":\"Race-specific plans for every venue\"},\"ironman\":{\"badge\":\"140.6\",\"eyebrow\":\"24–36 week program\",\"headlineStart\":\"IRONMAN plans built to \",\"headlineHighlight\"
1:\"put you on the finish line\",\"headlineEnd\":\"\",\"subhead\":\"A 140.6 is six to ten months of work. Done wrong it ruins you; done right it changes you. Your AI coach scales volume smartly, defends recovery, and rehearses every mile of race day.\",\"trustNote\":\"from real Ironman finishers\",\"swimDistanceMetric\":\"3.8 km swim\",\"swimDistanceImperial\":\"2.4 mi swim\",\"bikeDistanceMetric\":\"180 km bike\",\"bikeDistanceImperial\":\"112 mi bike\",\"runDistanceMetric\":\"42.2 km run\",\"runDistanceImperial\":\"26.2 mi run\",\"weeksRange\":\"24–36 weeks\",\"vp1Title\":\"Unstoppable endurance\",\"vp1Desc\":\"Build the aerobic engine and durability that 140.6 demands — block by block, never random.\",\"vp2Title\":\"Smart periodization\",\"vp2Desc\":\"Base, build, peak, race. The AI works backward from your race date and protects every key block.\",\"vp3Title\":\"Recovery defended\",\"vp3Desc\":\"Training load and freshness tracked daily. The AI eases off before you bury yourself.\",\"vp4Title\":\"Strength + mobility\",\"vp4Desc\":\"Two short sessions a week and load ceilings built into your week — durability for the long block.\",\"p1Title\":\"A plan that holds for 30 weeks\",\"p1Desc\":\"A PDF plan you wrote in January is fiction by April. Your AI coach reads what you did each week and rewrites the next — so the plan is always honest, always relevant.\",\"p1b1\":\"Race date locked: AI works backward and protects your peak\",\"p1b2\":\"The AI eases your load when your training stress signals you need it\",\"p1b3\":\"Travel weeks, sick weeks, life weeks — the plan adapts\",\"p1b4\":\"Chat with your AI coach any time about a swap or concern\",\"p2Title\":\"Race rehearsal, not race hope\",\"p2Desc\":\"The athletes who finish strong rehearse race day for weeks before it. Your plan includes long-day fueling, brick days, and progressive race-pace simulations.\",\"p2b1\":\"Long bikes that build to 4–6 hours with race-pace blocks\",\"p2b2\":\"Race rehearsal days with full fueling and pacing protocols\",\"p2b3\":\"Brick workouts that train your legs for the marathon\",\"p2b4\":\"Terrain-aware training — tell us your course is hilly and your build leans into climbs\",\"p3Title\":\"The details that change everything\",\"p3Desc\":\"Nutrition, taper, mental game, recovery — the unsexy details are where finish times happen. The app handles them so you don't have to remember.\",\"p3b1\":\"Carbs/hour and sodium guidance for your race distance\",\"p3b2\":\"Two-week taper that arrives fresh, not flat\",\"p3b3\":\"Strength, mobility, and core integrated into your week\",\"p3b4\":\"Race-morning checklist, warm-up, and pacing plan\",\"sampleWeekIntro\":\"A mid-build week, 12–14 weeks out. Yours will look very different at base vs peak — the AI sequences it for you.\",\"swMon1Label\":\"Endurance\",\"swMon1Min\":\"50–60 min\",\"swMon2Label\":\"Mobility\",\"swMon2Min\":\"15 min\",\"swTue1Label\":\"Sweet spot\",\"swTue1Min\":\"90 min\",\"swTue2Label\":\"Easy\",\"swTue2Min\":\"30 min\",\"swWed1Label\":\"Endurance\",\"swWed1Min\":\"60–75 min\",\"swWed2Label\":\"Strength\",\"swWed2Min\":\"25 min\",\"swThu1Label\":\"Tempo\",\"swThu1Min\":\"45–60 min\",\"swThu2Label\":\"Tempo\",\"swThu2Min\":\"75 min\",\"swFri1Label\":\"Recovery or yoga\",\"swFri1Min\":\"20 min\",\"swSat1Label\":\"Long ride\",\"swSat1Min\":\"4–5 hr\",\"swSun1Label\":\"Steady long run\",\"swSun1Min\":\"75–90 min\",\"wc1Title\":\"24–36 week periodization\",\"wc1Desc\":\"Base, build, peak, race — locked to your race date, never fiction.\",\"wc2Title\":\"Long-day building\",\"wc2Desc\":\"Saturday rides progress to 5–6 hours with race-pace blocks built in.\",\"wc3Title\":\"Race-day fueling\",\"wc3Desc\":\"Carbs, sodium, and hydration guidance rehearsed inside your long sessions.\",\"wc4Title\":\"Strength + durability work\",\"wc4Desc\":\"Two short sessions a week — built to hold up for 30+ weeks of training.\",\"wc5Title\":\"Smart auto-deload\",\"wc5Desc\":\"When your training load and freshness signal fatigue, the AI pulls you back before you crack.\",\"wc6Title\":\"Race-week and race-morning plan\",\"wc6Desc\":\"Taper, pacing, fueling, warm-up, mental cues — all dropped on race week.\",\"raceSectionTitle\":\"Train for your IRONMAN\",\"raceSectionSubtitle\":\"Race-specific plans for every 140.6\"},\"longevity\":{\"badge\":\"LONGEVITY\",\"eyebrow\":\"Year-round program\",\"headlineStart\":\"A plan for the \",\"headlineHighlight\"
1:\"next 30 years\",\"headlineEnd\":\", not the next 30 days\",\"subhead\":\"Train for energy, sleep, and a body that still wants to move at 70. Your AI coach builds a sustainable, enjoyable routine — strength, mobility, and aerobic work that fits real life.\",\"trustNote\":\"from athletes training for life\",\"weeksRange\":\"Ongoing\",\"vp1Title\":\"Feel better daily\",\"vp1Desc\":\"Steady energy, deeper sleep, better mood. The kind of fitness you actually notice in your week.\",\"vp2Title\":\"Strength that protects you\",\"vp2Desc\":\"Two short sessions a week to keep muscle, bone density, and balance as you age.\",\"vp3Title\":\"Zone 2 done right\",\"vp3Desc\":\"Steady aerobic work calibrated to your real heart rate — the cardiovascular foundation for everything else.\",\"vp4Title\":\"No guilt training\",\"vp4Desc\":\"Miss a day? Take a week off? The plan absorbs life — no broken streaks, no compounding pressure.\",\"p1Title\":\"Built around your real week\",\"p1Desc\":\"No 6am alarm needed. The AI flexes around work, kids, travel, and how you slept — and picks the most valuable session you can do today, in the time you actually have.\",\"p1b1\":\"Tell the app what you have today — 20 minutes or 90 — and it picks\",\"p1b2\":\"Log a rough week and the plan eases off\",\"p1b3\":\"No streaks to break, no penalty for resting\",\"p1b4\":\"Chat with your AI coach about substitutions any time\",\"p2Title\":\"The four pillars of longevity\",\"p2Desc\":\"Cardio, strength, mobility, and recovery — most people do one and skip three. The plan sequences all four into a sustainable week so you build everything, not just legs.\",\"p2b1\":\"Zone 2 cardio that builds the cardiovascular foundation\",\"p2b2\":\"Resistance training that preserves muscle and bone\",\"p2b3\":\"Mobility and stability micro-sessions woven through your week\",\"p2b4\":\"Recovery work (sleep, breath, walks) treated as training\",\"p3Title\":\"A coach without a clock\",\"p3Desc\":\"You're not training for a race — you're training for the rest of your life. The AI builds blocks around what you want this season (consistency, weight, energy, a hike, a 10K) and lets you change goals when life changes.\",\"p3b1\":\"Set a season goal — or no goal at all\",\"p3b2\":\"Your AI coach is always available to review what's working\",\"p3b3\":\"Optional 5K/10K/half-marathon \\\"challenge\\\" blocks any time\",\"p3b4\":\"Nutrition guidance focused on energy and consistency, not racing\",\"sampleWeekIntro\":\"A typical week. Yours will adapt to your schedule, sleep, and what you enjoy.\",\"swMon1Label\":\"Easy spin or walk\",\"swMon1Min\":\"30 min\",\"swMon2Label\":\"Mobility\",\"swMon2Min\":\"10 min\",\"swTue1Label\":\"Full-body strength\",\"swTue1Min\":\"25 min\",\"swTue2Label\":\"Easy run or swim\",\"swTue2Min\":\"20–30 min\",\"swWed1Label\":\"Zone 2 aerobic\",\"swWed1Min\":\"30–40 min\",\"swWed2Label\":\"Core + stability\",\"swWed2Min\":\"10 min\",\"swThu1Label\":\"Strength maintenance\",\"swThu1Min\":\"25 min\",\"swThu2Label\":\"Mobility\",\"swThu2Min\":\"10 min\",\"swFri1Label\":\"Yoga, walk, or rest\",\"swFri1Min\":\"\",\"swSat1Label\":\"Long easy aerobic\",\"swSat1Min\":\"60–75 min\",\"swSun1Label\":\"Hike, play, explore\",\"swSun1Min\":\"\",\"wc1Title\":\"Adaptive weekly plan\",\"wc1Desc\":\"Flexes to your schedule, sleep, and energy — no broken streaks.\",\"wc2Title\":\"Two strength sessions\",\"wc2Desc\":\"Short, effective resistance training that preserves muscle and bone.\",\"wc3Title\":\"Mobility + stability\",\"wc3Desc\":\"Micro-sessions woven through the week — keep moving well as you age.\",\"wc4Title\":\"Zone 2 aerobic base\",\"wc4Desc\":\"Heart-rate-calibrated easy work — the foundation for cardiovascular health.\",\"wc5Title\":\"Recovery as training\",\"wc5Desc\":\"Sleep, breath, walks, mobility — the things that actually keep you young.\",\"wc6Title\":\"Optional goals\",\"
1wc6Desc\":\"Add a 5K, a hike, or a charity ride any time — plan reshapes around it.\"},\"other\":{\"badge\":\"CUSTOM\",\"eyebrow\":\"Personalized for any goal\",\"headlineStart\":\"One AI coach. \",\"headlineHighlight\":\"Any goal.\",\"headlineEnd\":\"\",\"subhead\":\"Marathons, duathlons, gravel races, open-water swims, century rides, return-from-injury, general fitness. Your AI coach builds the exact plan your goal demands — and reshapes it every week as life happens.\",\"trustNote\":\"from athletes of every discipline\",\"weeksRange\":\"Tailored to your race date\",\"vp1Title\":\"Marathon \u0026 half\",\"vp1Desc\":\"Road or trail. Build speed, durability, and pacing for a PR — or your first finish.\",\"vp2Title\":\"Duathlon \u0026 aquabike\",\"vp2Desc\":\"Run–bike–run and swim–bike specialties with the right bricks and taper.\",\"vp3Title\":\"Open-water \u0026 masters swim\",\"vp3Desc\":\"Sighting, stroke mechanics, and sustainable pace for any open-water distance.\",\"vp4Title\":\"Gravel \u0026 adventure\",\"vp4Desc\":\"Big-day endurance, technical skills, and a fueling plan that survives long out-and-backs.\",\"vp5Title\":\"Return from injury\",\"vp5Desc\":\"Conservative ramp-up tuned to where you actually are today — protecting the comeback.\",\"vp6Title\":\"General fitness\",\"vp6Desc\":\"Wellbeing-first training for energy, consistency, and a body that wants to move tomorrow.\",\"p1Title\":\"A plan shaped to your goal\",\"p1Desc\":\"Pick a goal — race, distance, fitness milestone, or \\\"feel better.\\\" The AI builds the right block periodization, picks the right paces and intensities, and works backward from your target date.\",\"p1b1\":\"Targets the demands of your exact event, not a generic template\",\"p1b2\":\"Adjusts weekly volume to the time you actually have\",\"p1b3\":\"Adapts to your equipment: treadmill, trainer, pool, trails, dumbbells\",\"p1b4\":\"Change goals any time — the plan rebuilds in about a minute\",\"p2Title\":\"Strength and limiter blocks\",\"p2Desc\":\"Your AI coach spots the weak link — bike legs for a duathlon, sighting in open water, long-day fueling for gravel — and slots a focused block to fix it before race day.\",\"p2b1\":\"The AI emphasizes the limiters it sees in your training data\",\"p2b2\":\"Short focused blocks (e.g. \\\"run bootcamp\\\", \\\"swim technique series\\\")\",\"p2b3\":\"Strength and mobility tuned to the demands of your sport\",\"p2b4\":\"No surprise breakdowns at the start line\",\"p3Title\":\"Always aligned with life\",\"p3Desc\":\"Travel weeks, work crunches, a new baby, a head cold. The AI rebuilds the plan around you — without losing the through-line to your goal.\",\"p3b1\":\"Tell the app today's constraints; it adapts the day\",\"p3b2\":\"The AI eases your load when your training stress signals fatigue\",\"p3b3\":\"Skip days without breaking the plan\",\"p3b4\":\"Chat with your AI coach about anything, any time\",\"sampleWeekIntro\":\"An example marathon-build week. Every other plan looks different — duathlon, gravel, swim, fitness — all reshaped to your goal and schedule.\",\"swMon1Label\":\"Strength + mobility\",\"swMon1Min\":\"30 min\",\"swTue1Label\":\"Tempo intervals\",\"swTue1Min\":\"45–55 min\",\"swWed1Label\":\"Easy aerobic\",\"swWed1Min\":\"30–45 min\",\"swWed2Label\":\"Core\",\"swWed2Min\":\"10 min\",\"swThu1Label\":\"Hill repeats or threshold\",\"swThu1Min\":\"45–60 min\",\"swFri1Label\":\"Rest or yoga\",\"swFri1Min\":\"\",\"swSat1Label\":\"Long run with finishers\",\"swSat1Min\":\"90–120 min\",\"swSun1Label\":\"Recovery run\",\"swSun1Min\":\"30–40 min\",\"swSun2Label\":\"Strength\",\"swSun2Min\":\"25 min\",\"wc1Title\":\"Goal-specific paces\",\"wc1Desc\":\"Sets paces, power, and HR zones from your real numbers when you have them — sharper than generic ranges.\",\"wc2Title\":\"Equipment-aware\",\"wc2Desc\":\"Treadmill, smart trainer, pool, sandbags, gym, trails — works with what you have.\",\"wc3Title\":\"Limiter blocks\",\"wc3Desc\":\"AI spots weaknesses and slots focused blocks to fix them before race day.\",\"wc4Title\":\"Race-week strategy\",\"wc4Desc\":\"Taper, pacing, and fueling plan dropped on race week — for any event.\",\"wc5Title\":\"Strength + mobility work\",\"wc5Desc\":\"Built into your week — durability for months of consistent training.\",\"wc6Title\":\"Switch goals any time\",\"wc6Desc\":\"Marathon → 70.3 → fitness → ultra. The plan rebuilds in about a minute.\"}}
1,\"raceChecklist\":{\"title\":\"Triathlon Race Day Checklist\",\"subtitle\":\"Everything you need from the swim start to the finish line. Pick your distance, split or combine your transition zones, add your own items, and tick them off as you pack.\",\"setupTitle\":\"Set up your checklist\",\"setupDescription\":\"Choose your race distance and how your transition zones are arranged. Your list and checkmarks are saved in this browser.\",\"raceTypeLabel\":\"Race distance\",\"raceTypeHint\":\"Loads a starting checklist tuned to your distance. Long-course distances add extras like special-needs bags and on-course hydration.\",\"raceSprint\":\"Sprint\",\"raceOlympic\":\"Olympic\",\"race703\":\"Half (70.3)\",\"raceIronman\":\"Full (Ironman)\",\"transitionModeLabel\":\"Transition zones\",\"transitionSplitLabel\":\"Split — T1 and T2 separate\",\"transitionCombinedLabel\":\"Combined — single transition area\",\"transitionModeHintSplit\":\"Many full-distance and point-to-point races use separate T1 and T2 areas, often in different locations.\",\"transitionModeHintCombined\":\"Most short-course races use one transition area for both T1 and T2.\",\"progress\":\"{done} of {total} packed\",\"uncheckAllButton\":\"Uncheck all\",\"resetButton\":\"Reset to defaults\",\"printButton\":\"Print / Save PDF\",\"addItemPlaceholder\":\"Add your own item…\",\"addButton\":\"Add\",\"emptyCategory\":\"No items yet — add your own below.\",\"removeItem\":\"Remove {item}\",\"cat\":{\"general\":\"Race Essentials\",\"swim\":\"Swim\",\"t1\":\"T1 — Swim to Bike\",\"bike\":\"Bike\",\"t2\":\"T2 — Bike to Run\",\"run\":\"Run\",\"postRace\":\"After the Finish\",\"transition\":\"Transition\"},\"items\":{\"general-trisuit\":\"Tri suit / race kit\",\"general-bib\":\"Race bib \u0026 number belt\",\"general-timingchip\":\"Timing chip + ankle strap\",\"general-bodymarking\":\"Body marking (race morning)\",\"general-id\":\"Photo ID \u0026 race confirmation\",\"general-watch\":\"GPS watch (charged)\",\"general-breakfast\":\"Pre-race breakfast \u0026 morning fuel\",\"general-morningdrink\":\"Morning hydration / drink\",\"general-sunscreen\":\"Sunscreen\",\"general-antichafe\":\"Anti-chafe balm\",\"general-throwaway\":\"Throwaway warm clothes \u0026 old shoes\",\"general-cashphone\":\"Phone, cash \u0026 card\",\"swim-wetsuit\":\"Wetsuit (if water temp is wetsuit-legal)\",\"swim-goggles\":\"Goggles + a spare pair\",\"swim-cap\":\"Swim cap (race-issued + backup)\",\"swim-defog\":\"Goggle anti-fog\",\"swim-earplugs\":\"Ear plugs / nose clip (optional)\",\"t1-towel\":\"Small towel to mark your spot\",\"t1-helmet\":\"Helmet — buckle it before touching the bike\",\"t1-sunglasses\":\"Sunglasses\",\"t1-bikeshoes\":\"Bike shoes\",\"t1-socks\":\"Socks (if wearing)\",\"t1-belt\":\"Race belt (number facing back)\",\"t1-nutrition\":\"Bike nutrition / gels\",\"bike-checked\":\"Bike tuned — gears \u0026 brakes checked\",\"bike-tires\":\"Tires inflated to pressure\",\"bike-bottles\":\"Bottles filled\",\"bike-nutrition\":\"On-bike fuel — gels, bars, chews\",\"bike-flatkit\":\"Flat kit — spare tube, CO2/pump, levers, multi-tool\",\"bike-computer\":\"Bike computer mounted \u0026 charged\",\"t2-runshoes\":\"Running shoes (elastic laces ready)\",\"t2-hat\":\"Hat / visor\",\"t2-belt\":\"Race belt (number facing front)\",\"t2-socks\":\"Fresh socks (optional)\",\"t2-nutrition\":\"Run nutrition / gels\",\"run-shoes\":\"Running shoes\",\"run-hat\":\"Hat, visor \u0026 sunglasses\",\"run-nutrition\":\"Run-course nutrition / gels\",\"run-handheld\":\"Handheld bottle / hydration\",\"post-clothes\":\"Dry recovery clothes\",\"post-sandals\":\"Flip-flops / sandals\",\"post-recovery\":\"Recovery drink \u0026 snack\",\"post-phone\":\"Phone to find friends \u0026 family\",\"post-meal\":\"Post-race meal plan\",\"post-special\":\"Special-needs bag items\"},\"tipsTitle\":\"Race-day tips\",\"tip1\":\"Lay everything out the night before and photograph your transition setup — it's the fastest way to spot a missing item.\",\"tip2\":\"Nothing new on race day. Only pack gear, shoes, and nutrition you've already tested in training.\",\"tip3\":\"Set your helmet upside-down with the straps open on top of your bike shoes so you never forget to buckle it.\",\"tip4\":\"Check the water temperature and race rules the week before — wetsuit legality and cap colors can change your swim kit.\",\"tip5\":\"Pack a small zip-lock bag for your phone, keys, and ID so they stay dry in your transition bag.\",\"ctaTitle\":\"Train for the race, not just race day\",\"ctaDescription\":\"Transition builds your swim, bike, and run training and adapts it to your life with an AI coach — week by week, so you arrive at the start line ready.\",\"ctaButton\":\"Start your free trial\"},\"opencycle\":{\"badge\":\"OpenCycle integration\",\"eyebrow\":\"Indoor cycling\",\"headlineStart\":\"Stop guessing what to ride. \",\"headlineHighlight\"
1:\"Just get on the bike.\",\"headlineEnd\":\"\",\"subhead\":\"Transition plans your season around the race you are actually training for, then puts each day's session on your handlebars in OpenCycle. Open the app and it is already there.\",\"ctaPrimary\":\"Start your free trial\",\"ctaSecondary\":\"Try OpenCycle free\",\"ctaNote\":\"The integration is included with Transition. OpenCycle is free to ride.\",\"shotLobbyAlt\":\"OpenCycle's workout picker showing today's Transition session and a real GPX course\",\"shotLobbyCaption\":\"Today's session, sent from Transition, waiting in OpenCycle before you clip in.\",\"shotRouteAlt\":\"A GPX course imported into OpenCycle, showing its real distance, ascent and elevation profile\",\"howTitle\":\"How it works\",\"howSubtitle\":\"Connect the two once. After that it is a loop that closes itself.\",\"stepConnectTitle\":\"Connect the two, once\",\"stepConnectText\":\"Approve the connection from Transition. You are asked for exactly two permissions: send workouts to OpenCycle, and sync rides when you finish. Nothing else moves between them.\",\"stepPlanTitle\":\"Your plan is written around your race\",\"stepPlanText\":\"Transition knows what you are training for and how far away it is, so a Tuesday in base is not the same Tuesday six weeks out. Miss a week and the plan moves with you rather than falling behind.\",\"stepRideTitle\":\"Today's session is already there\",\"stepRideText\":\"Open OpenCycle and it is the first card on the screen. No exporting, no files, no picking something that looks about right. Press it and your trainer holds the targets.\",\"stepBackTitle\":\"The ride comes back\",\"stepBackText\":\"When you finish, the file returns to Transition automatically — power, heart rate, the lot. That is what lets tomorrow's session know how today actually went, which is the whole point of the loop.\",\"featuresTitle\":\"Built for the training you are actually doing\",\"featuresSubtitle\":\"Not a bigger library of workouts. A decision about which one you should do tonight.\",\"p1Title\":\"Today's session, already on the bike\",\"p1Desc\":\"The session Transition wrote for today is the first card in OpenCycle's picker, under your coach's name. Press it and your smart trainer holds every target for you.\",\"p1b1\":\"Intervals sent straight to the trainer in ERG — no files, no exporting\",\"p1b2\":\"Adapts overnight when you are tired, sick or travelling\",\"p1b3\":\"Works on any smart trainer, and still gives you the numbers on one that cannot hold power\",\"p2Title\":\"Rehearse the race on the actual course\",\"p2Desc\":\"Drop in the GPX of your race and OpenCycle builds the road from it — the real gradient, the real bends, the climb where it actually is. Transition can then write the rehearsal you ride on it.\",\"p2b1\":\"Real elevation and real corners from the course's own GPX file\",\"p2b2\":\"Pacing and fuelling rehearsed on the terrain you will meet on the day\",\"p2b3\":\"Know what the last climb costs before it is the one that decides your race\",\"p3Title\":\"The rest of the plan comes with it\",\"p3Desc\":\"The bike is one session in a week. Transition plans the whole thing, so what arrives in OpenCycle is part of a season rather than a workout that happens to be today.\",\"p3b1\":\"Fuelling and hydration built around each session, not a generic macro target\",\"p3b2\":\"Recovery read from sleep and HRV, so a hard day is moved rather than survived\",\"p3b3\":\"Swim, run and strength planned alongside the bike\",\"p3b4\":\"Ask your coach why any of it looks the way it does, in plain language\",\"includedTitle\":\"Everything else is included\",\"includedSubtitle\":\"One subscription. The OpenCycle connection does not cost extra.\",\"inc1Title\":\"Race-day nutrition\",\"inc1Desc\":\"Carbs per hour, bottle by bottle, rehearsed in training so nothing on race morning is new.\",\"inc2Title\":\"Recovery and readiness\",\"inc2Desc\":\"Sleep, HRV and resting heart rate decide whether tomorrow is the session you planned.\",\"inc3Title\":\"Strength and mobility\",\"inc3Desc\":\"Short, specific work that keeps you riding, scheduled around the hard days rather than on top of them.\",\"inc4Title\":\"Swim and run\",\"inc4Desc\":\"A full triathlon plan if you need one, or bike-only if that is all you race.\",\"inc5Title\":\"Race predictions\",\"inc5Desc\":\"What your current fitness is worth on your actual course, updated as the season goes on.\",\"inc6Title\":\"A coach you can ask\",\"inc6Desc\":\"Why this session, why now, why not harder — answered in plain language, any time.\",\"needTitle\":\"What it takes\",\"needSubtitle\":\"No new hardware, and nothing to install to ride.\",\"needKitTitle\":\"What you need\",\"needKitText\":\"A Transition account, a smart trainer or power meter, and a browser. OpenCycle runs in the browser, so there is nothing to install to ride — Transition itself is on iOS and Android.\",\"costTitle\":\"What it costs\",\"costText\":\"Nothing extra. The integration is included with a Transition subscription and OpenCycle does not charge for it. Disconnect from either side at any time.\",\"privacyTitle\":\"Your ride data stays yours\",\"privacyText\":\"Rides sync so your plan can adapt, and for nothing else. You choose when to connect, you can disconnect whenever you like, and both permissions are named plainly on the screen that asks for them.\",\"privacyLink\":\"Read the privacy policy\"},\"wetsuitCalculator\":{\"title\":\"Wetsuit Legal Temperature Calculator\",\"subtitle\":\"One thermometer reading, several possible rulings. Enter your race conditions and see whether a wetsuit is required, legal, not award-eligible, wave-only or banned, and which rule decides it.\",\"form\":{\"unitsAria\":\"Temperature units\",\"unitsLabel\":\"Units\",\"bodyLabel\":\"Who sanctions the race\",\"bodyHint\"
1:\"Your race listing or athlete guide names this. An IRONMAN or 70.3 runs under IRONMAN rules even where USA Triathlon sanctions it, so pick the brand on the race rather than the federation.\",\"categoryLabel\":\"Which start you are in\",\"distanceLabel\":\"Swim distance\",\"distanceCustom\":\"Another distance\",\"distanceCustomLabel\":\"Scheduled distance (metres)\",\"distanceCustomHint\":\"Enter the race's scheduled swim distance, not a shortened race-morning estimate.\",\"waterLabel\":\"Water temperature ({unit})\",\"waterHint\":\"Use the official reading if the race has posted one, with no more than two decimal places. Practice-swim readings taken at a different time or depth often differ.\",\"airLabel\":\"Air temperature ({unit})\",\"airOptional\":\"optional\",\"airPlaceholder\":\"Leave blank if you do not know\",\"airHint\":\"A cold morning can lower the temperature the decision is made on. Use no more than two decimal places; leave this blank and the result assumes no adjustment applies.\",\"reset\":\"Reset\"},\"bodies\":{\"world-triathlon\":\"World Triathlon rules\",\"usat\":\"USA Triathlon\",\"ironman\":\"IRONMAN and IRONMAN 70.3\"},\"categories\":{\"wt-age-group\":\"Age group, up to the 55-59 category\",\"wt-age-group-60plus\":\"Age group, 60-64 category and older\",\"wt-elite\":\"Elite, U23, Junior or Youth\",\"usat-standard\":\"Age group, ordinary sanctioned race\",\"usat-championship\":\"National Championships or a World Triathlon qualifier\",\"usat-elite\":\"Elite, U23 or Developmental High Performance race\",\"im-age-group\":\"Age group, relay or Open Division\",\"im-professional\":\"Professional\"},\"distances\":{\"300\":\"300 m (super sprint)\",\"750\":\"750 m (sprint)\",\"1000\":\"1000 m\",\"1500\":\"1500 m (Olympic)\",\"1900\":\"1900 m (70.3 / middle distance)\",\"2000\":\"2000 m\",\"2500\":\"2500 m\",\"3000\":\"3000 m\",\"3800\":\"3800 m (full distance)\",\"4000\":\"4000 m\"},\"verdictHeadline\":{\"mandatory\":\"Wetsuit required\",\"allowed\":\"Wetsuit legal\",\"allowed-not-eligible\":\"Legal, but not award-eligible\",\"wave-only\":\"Only if your race runs a wetsuit wave\",\"forbidden\":\"No wetsuit\"},\"verdictDetail\":{\"mandatory\":\"At this temperature you may not start the swim without a wetsuit.\",\"allowed\":\"You may wear a wetsuit and you keep full eligibility for rankings, awards and slots.\",\"allowed-not-eligible\":\"You may start in a wetsuit, but the result is not eligible for rankings submission or age-group awards at this temperature.\",\"wave-only\":\"This is above the ceiling where a wetsuit is simply allowed. IRONMAN may run a separate non-competitive wave here, at its own discretion. Without one, starting in a wetsuit is a disqualification.\",\"forbidden\":\"The water is too warm for a wetsuit. You swim under the non-wetsuit swimwear rules instead.\"},\"verdictBand\":{\"mandatory\":\"Required\",\"allowed\":\"Legal\",\"allowed-not-eligible\":\"No award\",\"wave-only\":\"Wave only\",\"forbidden\":\"Banned\"},\"result\":{\"empty\":\"Enter a water temperature to see the ruling for your race.\",\"spoken\":\"{headline}. Swim: {swim}.\",\"officialLabel\":\"Temperature the rule is read at\",\"adjustedFrom\":\"Adjusted down from your {measured} {unit} reading because the air is at {air} {unit}.\",\"swimLabel\":\"Swim\",\"swimFull\":\"Full {distance} m\",\"swimShortened\":\"Shortened to {distance} m\",\"swimCancelled\":\"Likely cancelled\",\"swimUnspecified\":\"Set by the race\",\"source\":\"Source: {rules}\",\"disclaimer\":\"These are the published rules, not a ruling and not a safety assessment. The Head Referee or Technical Delegate decides on race morning and can override for waves, current, wind or water quality. Legal is not the same as safe for you.\"},\"ruler\":{\"title\":\"Where that sits on the whole scale for this start\",\"hint\":\"Race-morning readings move. This shows how much margin you have before the wetsuit ruling changes.\",\"aria\":\"Wetsuit bands for this start. {bands}.\",\"bandSummary\":\"{label}: {range}\",\"offScale\":\"Your reading sits outside this scale, so the marker is pinned to the end.\",\"cancelNote\":\"This scale covers the wetsuit ruling only. At your reading the rulebook also advises shortening or cancelling the swim, which the bands above do not show.\"},\"sections\":{\"differentAnswersTitle\":\"Why the same reading gives different answers\",\"differentAnswers1\":\"Triathlon has no single wetsuit rule. Three rulebooks govern almost every race an age-grouper enters, and they disagree with each other by several degrees.\",\"differentAnswers2\":\"Take 24.0 °C, a warm but unremarkable lake. A 42-year-old at a World Triathlon-sanctioned Olympic-distance race may not wear a wetsuit: their ceiling is 22.0 °C for a swim of 1500 m or less. A 62-year-old standing next to them on the same beach may, because the 60-64 category and older keeps a 24.6 °C ceiling at every distance. That same athlete at an IRONMAN 70.3 is under 24.5 °C and legal. At a local USA Triathlon race they are legal with room to spare, since the ordinary age-group table does not prohibit a wetsuit until 84.0 °F.\",\"differentAnswers3\":\"There is one more trap inside USA Triathlon itself. National Championships and World Triathlon qualifying races run on a separate table that prohibits wetsuits at 76.2 °F and above, roughly eight degrees lower than the local race the same athlete raced in July. Athletes who qualify and then travel are the ones most likely to be caught out.\",\"differentAnswers4\":\"IRONMAN sits outside both. An IRONMAN or 70.3 runs under IRONMAN rules even at events USA Triathlon also sanctions. For age-group, relay and Open Division starts, this is exactly the case IRONMAN names when it describes the separate non-competitive wet
1suit wave; professional starts do not receive that option.\",\"adjustmentTitle\":\"The cold-air adjustment most tables leave out\",\"adjustment1\":\"Nearly every wetsuit table published online is a single column of water temperatures. Both World Triathlon and USA Triathlon actually decide on an adjusted figure. When the measured water is at or below 22.0 °C (71.6 °F), the measured air is at or below 15.0 °C (59.0 °F), and the air is colder than the water, the official water temperature becomes the average of the two readings.\",\"adjustment2\":\"The effect is large. Water at 20 °C with air at 8 °C is not treated as 20 °C. It is treated as 14 °C, which moves the swim from wetsuit-optional to wetsuit-mandatory and caps the distance at 3000 m. USA Triathlon states the same adjustment as a formula: in Fahrenheit, half the sum of the two readings. Both governing bodies publish it as a grid, and the formula reproduces every cell in both grids.\",\"adjustment3\":\"The grid has a boundary worth knowing. World Triathlon says that when the water is above 22 °C the table temperatures apply as they are, so a cold morning over warm water changes nothing at all. IRONMAN publishes no adjustment of any kind, so an IRONMAN result here runs on the measured water temperature alone.\",\"shortenedTitle\":\"When the swim gets shortened or cancelled\",\"shortened1\":\"Cold water does not simply add a wetsuit requirement. USA Triathlon's guidance caps the distance at 3000 m once the adjusted temperature falls to 14.9 °C, at 1500 m below 14.0 °C and at 750 m below 13.0 °C, and advises cancelling the swim below 12.0 °C. It says the same for a measured air temperature below 6.0 °C, or water reaching 32.0 °C at the hot end.\",\"shortened2\":\"World Triathlon publishes the same idea as a grid indexed by the original swim distance, with one quirk worth knowing: a swim of 300 m or less keeps its full distance across a far wider band than any longer swim, though the cold-air grid can still stop it.\",\"shortened3\":\"Both are written as guidance rather than prohibition. USA Triathlon introduces its thresholds with “as a further guide, the swim distance may be shortened or cancelled”, and World Triathlon says the distance can be shortened or even cancelled. So this tool reports the wetsuit ruling alongside a likely cancellation rather than instead of it: a shortened swim may well still be held, and you would still need to know what to wear in it.\",\"shortened4\":\"Practically, this is the difference between a spare pair of goggles and a rethought race. A 3800 m swim capped at 1500 m changes your fuelling, your bike start time and your split expectations.\",\"measurementTitle\":\"How the official temperature is measured\",\"measurement1\":\"Athletes often arrive with a reading from a practice swim and find the posted number is different. The protocol explains most of the gap. World Triathlon requires the temperature to be taken one hour before the start, at the middle of the course and two other points on it, at a depth of 60 cm. USA Triathlon words the same protocol as guidance: measurements should be taken an hour before, and the 24-inch depth is strongly recommended rather than required.\",\"measurement2\":\"Which of the three readings counts depends on the direction of the risk. Where the average is 27 °C (80.6 °F) or below, the lowest measured temperature is official. Where the average is above that, the highest is official. The rule leans toward the colder reading in cold conditions and the warmer one in heat, which is what you would expect from a safety rule, and it is why a shallow, sun-warmed practice swim the afternoon before tells you very little about the number that will be posted.\",\"faqTitle\":\"Common questions\",\"limitsTitle\":\"What this does not decide\",\"limits1\":\"This is a reading of the published rules, not a ruling. Under all three rulebooks the Head Referee or Technical Delegate can amend the wetsuit determination, shorten the course or cancel the swim for other conditions: waves, current, wind, rain, water quality. World Triathlon makes that call one hour before the start and communicates it to athletes. Their decision is the one that c
1ounts.\",\"limits2\":\"Races can also hold variances, so a local event may run under terms that differ from the national table. And USA Triathlon's own age-group table contradicts itself twice. It prints the allowed band as 78.1 to 84.0 °F while a footnote strips rankings and age-group awards from anyone wearing a wetsuit at or above 78.0 °F; this tool follows the footnote, because that is the reading that warns you rather than the one that quietly costs you award eligibility. It also lists 84.0 °F as both the top of the allowed band and the bottom of the prohibited band; the Celsius column resolves that one, and 84.0 °F is treated as prohibited.\",\"limits3\":\"Nothing here is medical guidance. Legal and safe are different questions, and cold water carries real risk even inside the permitted range. If you are unsure about your own tolerance, that is a conversation for a clinician, not a calculator.\",\"noWetsuitTitle\":\"If the answer is no wetsuit\",\"noWetsuit1\":\"All three bodies agree on the core, which makes this the one part of the decision you can prepare for in advance: swimwear must be 100% textile, so nylon or lycra with no neoprene or polyurethane. They differ on the detail. USA Triathlon and IRONMAN both bar swimwear that covers the neck or extends past the elbow or the knee, and both prohibit neoprene buoyancy shorts by name. World Triathlon words its version as a clothing rule instead: when wetsuits are forbidden, clothing covering any part of the arms below the elbows or the legs below the knees is forbidden with them.\",\"noWetsuit2\":\"Swimskins are the age-grouper's option here. World Triathlon allows them for age-group athletes at all distances and in all water temperatures, while barring them for Elite, U23, Junior, Youth and Para athletes at standard distance and shorter. When a wetsuit is mandatory instead, World Triathlon requires it to cover at least the torso and USA Triathlon at least the torso and the back. IRONMAN sets no minimum coverage, only that a wetsuit may not cover the face, hands or feet.\",\"sourcesTitle\":\"Sources\",\"sourcesWt\":\"sections 4.2 (wetsuit use), 4.4(a) (swim distance modifications), 4.4(b) (cold-air adjustment) and 4.4(e) (measurement).\",\"sourcesUsat\":\"v.2026.01.01, sections 3.4.1 to 3.4.4, with the wetsuit specifications at 3.2.1 and the non-wetsuit swimwear rules at 3.2.3.\",\"sourcesIm\":\"effective 2 March 2026, section 4.02, with the non-wetsuit swimwear policy at 4.03.\",\"sourcesNote\":\"Rulebooks are revised annually. Checked against the versions above on 27 August 2026. Always confirm against your own race's athlete guide.\",\"afterTitle\":\"Once the ruling is known\",\"after1\":\"A wetsuit call changes race week. A wetsuit alters body position and buoyancy, so the catch and kick you rehearse in one are not the ones you race in the other, which is covered in our guide to\",\"after2\":\"and the kit side is in the\",\"shortened4Link\":\"a training plan that reshapes around the week you actually had\",\"shortened4Tail\":\"absorbs that better than one that assumes the race went as printed.\"},\"faq\":{\"q1\":\"What water temperature is wetsuit legal in triathlon?\",\"a1\":\"It depends on who sanctions the race. Under USA Triathlon, an age-grouper at an ordinary sanctioned race may wear a wetsuit up to 77.9 °F (25.5 °C) with full eligibility; from 78.0 through 83.9 °F the result is not eligible for rankings submission or age-group awards, and at 84.0 °F a wetsuit is prohibited. IRONMAN allows age-group, relay and Open Division athletes a wetsuit up to and including 76.1 °F (24.5 °C); the professional ceiling is 71.5 °F (21.9 °C). World Triathlon forbids one at 22.0 °C (71.6 °F) and above for age-groupers swimming 1500 m or less, rising to 24.6 °C for longer swims and for the 60-64 category and older.\",\"q2\":\"Does a cold morning change whether a wetsuit is allowed?\",\"a2\":\"Under World Triathlon and USA Triathlon it can. When the measured water is at or below 22.0 °C (71.6 °F), the air is at or below 15.0 °C (59.0 °F), and the air is colder than the water, the official water temperature is adjusted to the average of the two readings. Water at 20 °C with air at 8 °C is treated as 14 °C, which turns an optional wetsuit into a mandatory one. Above 22 °C water the adjustment does not apply, and IRONMAN publishes no equivalent.\",\"q3\":\"Can I wear a wetsuit above the legal temperature if I do n
1ot care about awards?\",\"a3\":\"Under USA Triathlon, often yes: from 78.0 through 83.9 °F a wetsuit is allowed, but athletes who wear one may not have results submitted for rankings or age-group awards unless the race holds a variance; at 84.0 °F it is prohibited. Under IRONMAN it is not your call. For age-group, relay and Open Division starts above 24.5 °C, a wetsuit is permitted only where IRONMAN has chosen, at its sole discretion, to run a separate non-competitive wave, and only at certain events. Without that wave, starting in a wetsuit is a disqualification. Professional starts prohibit wetsuits above 21.9 °C and do not receive the wave option.\",\"q4\":\"At what temperature is a wetsuit mandatory?\",\"a4\":\"World Triathlon and USA Triathlon both make a wetsuit mandatory at 15.9 °C (60.6 °F) and below. IRONMAN makes one mandatory below 16.0 °C (60.8 °F). At those temperatures it is not a choice. World Triathlon requires the wetsuit to cover at least the torso, and USA Triathlon the torso and the back.\",\"q5\":\"At what temperature is the swim shortened or cancelled?\",\"a5\":\"USA Triathlon's guidance is to cancel the swim if the adjusted water temperature is below 12.0 °C (53.6 °F), if the measured air is below 6.0 °C (42.8 °F), or if the measured water is at or above 32.0 °C (89.6 °F). Between 12.0 °C and 15.0 °C the distance is progressively capped at 750 m, 1500 m and 3000 m. World Triathlon publishes a similar table indexed by the original swim distance. Both are written as guidance to the referee rather than a prohibition.\"}},\"bikeGearingCalculator\":{\"title\":\"Bike Gearing Calculator\",\"subtitle\":\"Gearing cannot make you faster up a climb. It decides what cadence you turn at the speed your power already fixed. Enter your drivetrain and the climb, and see whether your easiest gear still leaves you pedalling.\",\"form\":{\"bikeTitle\":\"Your drivetrain\",\"climbTitle\":\"The climb\",\"unitsLabel\":\"Units\",\"unitsAria\":\"Weight and speed units\",\"unitsMetric\":\"kg / km/h\",\"unitsImperial\":\"lb / mph\",\"chainringPresetLabel\":\"Chainrings\",\"chainringPresetHint\":\"Picking a chainset fills the two boxes below. Change either box and the calculator uses your numbers instead.\",\"customOption\":\"Custom (edit the boxes below)\",\"innerChainringLabel\":\"Inner chainring (teeth)\",\"innerChainringHint\":\"The small ring. This is the only one that matters on a climb.\",\"outerChainringLabel\":\"Outer chainring (teeth)\",\"outerChainringHint\":\"Used only for the descent figure further down.\",\"cassettePresetLabel\":\"Cassette\",\"largestSprocketLabel\":\"Largest sprocket (teeth)\",\"largestSprocketHint\":\"The biggest cog, the one you reach for when the road tilts up.\",\"smallestSprocketLabel\":\"Smallest sprocket (teeth)\",\"wheelPresetLabel\":\"Wheel and tyre\",\"wheelPresetHint\":\"Circumference is estimated as pi times the bead diameter plus twice the tyre width. If you have rolled your wheel out and measured it, use the box below instead.\",\"rolloutLabel\":\"Measured rollout (mm)\",\"rolloutOptional\":\"optional\",\"rolloutHint\":\"Overrides the estimate. Mark the valve position, roll the loaded bike one full wheel turn, and measure the distance.\",\"crankLabel\":\"Crank length (mm)\",\"crankHint\":\"Common lengths are 165, 170, 172.5 and 175. It is stamped on the back of the crank arm.\",\"massLabel\":\"Total weight ({unit})\",\"massHint\":\"Rider, bike, kit, bottles and anything taped to the top tube. On a climb this is what you are lifting.\",\"powerLabel\":\"Climbing power (watts)\",\"powerHint\":\"The power you expect to actually hold on this climb during the race, not your best twenty-minute number. Without a power meter, estimate it from a climb you have ridden; the limitations section below shows how.\",\"ftpLabel\":\"Your FTP (watts)\",\"ftpOptional\":\"optional\",\"ftpHint\":\"Only used to show what share of your FTP the climbing power above would be. It does not change the result.\",\"ftpShare\":\"That is {percent}% of your FTP.\",\"gradientLabel\":\"Gradient (%)\",\"gradientHint\":\"The steepest part you will have to ride at a steady effort, not the average for the whole course. One decimal place.\",\"gradientPresetsLabel\":\"Common gradients\",\"targetCadenceLabel\":\"Cadence you want to hold (rpm)\",\"targetCadenceHint\":\"Defaults to 60, the lowest cadence the research below tested. It is a floor the evidence covers, not a cadence anyone recommends. Set your own if you know 
1what you can turn.\",\"reset\":\"Reset\",\"accepts\":\"Accepts {min} to {max}.\"},\"result\":{\"empty\":\"Fill in your drivetrain and the climb to see the cadence your easiest gear would give you.\",\"spoken\":\"{cadence} rpm in your easiest gear. {band}\",\"headline\":\"{cadence} rpm in your easiest gear\",\"gearLabel\":\"Easiest gear\",\"gearValue\":\"{chainring} x {sprocket}\",\"speedLabel\":\"Speed this climb allows\",\"speedValue\":\"{speed} {unit}\",\"forceLabel\":\"Average pedal force\",\"forceValue\":\"{force} N\",\"forceCompare\":\"At {target} rpm, the bottom of the tested range, the same power would be {force} N.\",\"forceNote\":\"Averaged across a whole revolution and both legs. The peak inside each stroke is higher.\",\"meetsTarget\":\"Your easiest gear already clears the {target} rpm you asked for.\",\"missesTarget\":\"Your easiest gear leaves you {gap} rpm short of the {target} rpm you asked for.\",\"fixTitle\":\"What would raise the cadence\",\"fixSprocket\":\"A {teeth}-tooth largest sprocket with your {chainring}-tooth inner ring puts you at {cadence} rpm.\",\"fixChainring\":\"Or a {teeth}-tooth inner ring with your existing {sprocket}-tooth sprocket puts you at {cadence} rpm.\",\"fixNone\":\"No cassette within a normal road range reaches that cadence at this power and gradient. Either the gradient is exceptional or the power is optimistic.\",\"fixCapacity\":\"Check your rear derailleur's maximum sprocket size before buying anything. That limit is specific to your derailleur model and this page does not know it.\",\"spinOut\":\"Going the other way, {chainring} x {sprocket} runs out at {speed} {unit} at {cadence} rpm.\",\"aeroWarning\":\"Below {gradient}% gradient the aerodynamic share of the resistance grows enough that the assumed riding position starts to matter, so treat this answer as softer than a climbing one.\",\"fixWideRange\":\"A {teeth}-tooth sprocket is past the {ceiling}-tooth ceiling of a typical road rear derailleur, so that change means a gravel or mountain derailleur too.\",\"targetBasis\":\"60 rpm is the default only because it is the bottom of the range the research below tested, not because it is a cadence anyone has recommended. Change it above if you know what you can turn.\"},\"bands\":{\"below-tested\":\"Below the tested range\",\"tested\":\"Inside the tested range\",\"above-tested\":\"Above the tested range\"},\"bandDetail\":{\"below-tested\":\"This is under 60 rpm, the lowest cadence the triathlon cycle-run study below put anyone through, so you are outside what that trial covered. Inside it, the 60 rpm ride already left athletes running at a higher fraction of their VO2max than the 80 and 100 rpm rides did. Below 60 the mechanics are the certain part: the pedal force keeps rising as the cadence falls.\",\"tested\":\"This sits inside the 60 to 100 rpm range triathletes have been tested across, where the study below found no significant difference in the 3 km time that followed. Its measures disagree within that range: the fastest mean run came after 60 rpm, while the relative oxygen cost during the run was lowest after the higher cadences. So it does not pick a cadence for you inside this band either. What it does tell you is that your gearing is not forcing you outside the range anyone has looked at.\",\"above-tested\":\"Above 100 rpm your easiest gear is far easier than this gradient needs. That is not a problem to solve, and on a shallow gradient it is the expected answer.\"},\"ruler\":{\"title\":\"Where that cadence sits\",\"hint\":\"The middle band is the 60 to 100 rpm range that Bernard and colleagues tested in triathletes. It is a range that has been studied, not a range that has been recommended.\",\"aria\":\"Cadence scale from {min} to {max} rpm. {bands}. Your easiest gear gives {cadence} rpm.\",\"markerLabel\":\"{cadence} rpm\",\"offScale\":\"That cadence falls outside the drawn scale, so no marker is shown.\",\"fixMarkerLegend\":\"The dashed line is where a {teeth}-tooth sprocket would put you, at {cadence} rpm.\",\"ariaEmpty\":\"Cadence scale from {min} to {max} rpm. {bands}. No result yet.\",\"ariaBand\":\"{name}, {range}\",\"ariaAtLeast\":\"{value} rpm or more\",\"ariaAbove\":\"above {value} rpm\",\"ariaAtMost\":\"{value} rpm or less\",\"ariaBelow\":\"under {value} rpm\"},\"ladder\":{\"title\":\"What each cassette would give you on this climb\",\"hint\":\"Cadence in the easiest gear for every largest-sprocket size road and gravel cassettes are sold in, at the speed this climb allows. Your current sprocket is marked.\",\"caption\":\"Cadence in the easiest gear for each commonly sold largest sprocket, at this climbing speed.\",\"gearHeader\":\"Easiest gear\",\"cadenceHeader\":\"Cadence\",\"bandHeader\":\"Band\",\"cadenceCell\"
1:\"{cadence} rpm\",\"yours\":\"Yours\",\"wideRange\":\"wide-range derailleur\",\"footnote\":\"Sprockets above 36 teeth need a gravel or mountain rear derailleur rather than a road one. Sizes shown are the common ones; your groupset may not offer every step.\"},\"assumptions\":{\"title\":\"What the calculation assumes\",\"crr\":\"Rolling resistance coefficient 0.005, a reasonable clincher on decent asphalt.\",\"cda\":\"Drag area 0.30 m2, a rider on the hoods rather than folded onto the aerobars.\",\"rho\":\"Air density 1.225 kg/m3, the standard atmosphere at sea level and 15 C.\",\"drivetrain\":\"Drivetrain efficiency 97.5%.\",\"steady\":\"A steady climb at constant speed. Accelerations, corners and standing efforts are not modelled.\",\"share\":\"On this climb, air resistance is {percent}% of the total resistance you are working against.\"},\"sections\":{\"whyTitle\":\"Your gearing cannot change your climbing speed\",\"why1\":\"This is the part most gear calculators get backwards. They ask you for a cadence and tell you the speed. On a sustained climb you do not choose the speed. Your power, your total weight and the gradient choose it, and the only thing left for the gearing to decide is how fast the cranks go round while that happens.\",\"why2\":\"A rider putting out 200 watts at 80 kg on an 8% ramp goes 10.3 km/h. Fit a 34-tooth sprocket, fit a 25, fit anything you like: they still go 10.3 km/h, because the gear ratio is not a term in the balance between the rider and gravity. What changes is the cadence. On a 36 by 28 that speed is 63.4 rpm. On a 36 by 25 it is 56.6. On a 36 by 21 it is 47.6.\",\"why3\":\"So the question worth asking is not which cassette is fastest. It is whether the easiest gear you own lets you pedal at a rate you can hold for the length of the climb, at the power you plan to ride.\",\"evidenceTitle\":\"What the cadence research actually says\",\"evidence1\":\"Bernard and colleagues had nine well-trained triathletes ride 20 minutes at 60, 80 and 100 rpm at what they described as sprint-triathlon race intensity, above 80% of VO2max, then run 3000 m on a track. The run after the 60 rpm ride averaged 625.7 seconds, after 80 rpm 630.0, and after 100 rpm 637.7. Those differences were not statistically significant.\",\"evidence2\":\"The same study did find differences either side of the finish time. Over the first 500 m of the run, stride rate and running velocity were significantly higher after the 80 and 100 rpm rides than after the 60 rpm ride, and the 60 rpm ride left the athletes running at a significantly higher fraction of their VO2max. So the run after the lower cadence cost more to produce, even though the clock did not show it.\",\"evidence3\":\"Those measures disagree, and it is worth being plain about that rather than picking the flattering half. The only performance outcome, the 3 km time, came out fastest after the lowest cadence, non-significantly and in the wrong direction to lean on. The physiological and early-pace measures went the other way. Nothing in there picks a cadence, which is why the calculator does not offer one. Anywhere inside that range is yours to choose; what a gearing tool can settle is whether your bottom gear leaves you able to choose at all.\",\"evidence4\":\"The mechanics underneath are not in dispute. A systematic review of cadence and neuromuscular function states that for a given power output, raising the pedalling cadence reduces the torque applied to the pedal, and lowering it raises the torque. Halve your cadence at the same power and the average pedal force doubles. Whether that extra force costs you anything over 90 km has not been settled.\",\"workedTitle\":\"A worked example\",\"worked1\":\"Take an athlete at 80 kg all in, riding a 52/36 with an 11-28 on 700 by 25 tyres, planning to hold 200 watts on the steep sections of a hilly 70.3. At 8% the calculator gives 10.3 km/h and 63.4 rpm in the 36 by 28. That is inside the tested range, and on 172.5 mm cranks the average pedal force is about 175 N.\",\"worked2\":\"Now change one number. The same athlete carrying a bit more, at 95 kg all in and still holding 200 watts, is going 8.8 km/h. The 36 by 28 now gives 53.9 rpm, below the range anyone has tested, and the pedal force rises to about 205 N. To get back to 60 rpm they need a 32-tooth sprocket, which is a cassette swap their derailleur may well take.\",\"worked3\":\"The same logic runs the other way. Put the lighter athlete on a 12% pitch instead of 8% and the 36 by 28 gives 43.9 rpm at 7.2 km/h, with the average pedal force up at 252 N. No road cassette rescues that: 36 teeth, the largest a road rear derailleur normally takes, still only reaches 56.5 rpm, and dropping to the smallest common inner chainring does not get there either. A 40-tooth sprocket reaches 62.8 rpm, and buying one means a gravel or mountain derailleur as well as a cassette. On a pitch that steep the honest options are a wider-range drivetrain, more power, or riding it slowly.\",\"modelTitle\":\"How the speed is worked out\",\"model1\":\"The speed comes from the steady-state power balance that Martin and colleagues validated for road cycling: the power you put into the pedals, less drivetrain losses, has to equal the power needed to lift you up the slope, plus rolling resistance, plus aerodynamic drag. Because those terms grow with speed at different rates, the equation is solved numerically rather than rearranged.\",\"model2\":\"Two of the inputs are assumptions rather than measurements: the drag area and the rolling resistance coefficient. On a real climb neither matters much. At 200 watts, 80 kg and 8%, air resistance accounts for about 2% of the total resistive force and rolling resistance about 6%, while gravity does the other 92%. Raising the assumed drag area by a third moves the cadence by less than half an rpm. Below about 3% gradient the aerodynamic share grows enough to matter, and the calculator says so on screen when your gradient is that shallow.\",\"model3\":\"Wheel circumference is the input most likely to be a little off. The estimate treats the tyre as round, so the outside diameter is the rim's bead seat diameter plus twice the tyre width. Real tyres sit differently on different rims, and a 1% error in circumference is a 1% error in cadence, about two thirds of an rpm at these numbers. Measure a rollout if you want that back.\",\"limitsTitle\":\"Where this stops being reliable\",\"limits1\":\"It does not know whether the parts fit. Rear derailleurs have a maximum sprocket size and a total capacity, both specific to the model, and a recommendation here can easily exceed them. Check the manufacturer's specification, and expect a longer chain and possibly a different derailleur alongside a much b
1igger cassette.\",\"limits2\":\"It assumes you stay seated and steady. Standing changes the drag area and lets you push a bigger gear briefly; a punchy 400 m ramp is a different problem from a 40-minute pass, and this page models the second one.\",\"limits3\":\"It uses one gradient. Real climbs are not one gradient, and the number that catches people out is the steepest sustained section, not the average. Take the steepest part you will have to ride at a steady effort and use that.\",\"limits4\":\"It needs a power number, which is the one input not written on your bike, and the answer moves with it: 10 watts is worth about 3 rpm at the settings this page opens with. Without a power meter, estimate from a climb you have ridden at a steady effort. Kilograms times 9.8, times metres climbed, divided by seconds taken, gives the power that lifted you. Then add for rolling and air resistance: about a tenth on a pitch of 8% or steeper, a fifth at 5%, a third at 4%. Below about 4% the correction outgrows the part you can measure and the method stops being worth using. An estimate this rough can carry you across a band edge, so if the cadence lands within a few rpm of your target, read it as unresolved rather than as a verdict.\",\"faqTitle\":\"Common questions\",\"sourcesTitle\":\"Sources\",\"sourcesMartin\":\"The power balance the speed solver implements.\",\"sourcesBernard\":\"The 60, 80 and 100 rpm cycle-run trial that both band edges come from.\",\"sourcesMater\":\"The review behind the pedal-force statement.\",\"sourcesNote\":\"Every figure the calculator produces follows from these sources and from the numbers you type. None of it is a measurement of you.\",\"afterTitle\":\"Sorting the gearing is the easy half\",\"after1\":\"A cassette is an afternoon. Arriving at the climb able to hold the power you planned is the year, which is what a\",\"after1Link\":\"structured Ironman training plan\",\"after2\":\"is for. For position, pacing and the rest of the ride, there is more in\",\"after2Link\":\"cycling efficiency and form\",\"after3\":\"and the\",\"after3Link\":\"triathlon race checklist\",\"after4\":\"covers what to pack once the bike is set up.\",\"evidence5\":\"So the failure worth catching before race day is not 78 rpm where you wanted 85. It is the athlete who discovers on the day that their bottom gear puts them at 44 rpm on a 12% wall, standing up, thirty kilometres from the run.\",\"limits5\":\"It says nothing about what power you should ride. The climbing power is the number you provide, and the calculator has no opinion about whether it suits your race, your fitness or your day.\",\"sourcesMartinOpen\":\"A free restatement of the same model, by different authors, is in Dahmen, Wolf and Saupe (2012),\",\"sourcesMartinOpenLink\":\"Applications of Mathematical Models of Road Cycling\"},\"faq\":{\"q1\":\"What cadence should I climb at?\",\"a1\":\"The page does not tell you, because the evidence does not support a single number. In the triathlon study cited below, nine well-trained athletes rode 20 minutes at 60, 80 and 100 rpm before a 3000 m run. The run times did not differ significantly, and the fastest mean time actually followed the 60 rpm ride. The same study did find that the 60 rpm ride left them running at a higher fraction of VO2max, and running slower over the first 500 m, than 80 or 100 rpm did. Those measures point in opposite directions, so no cadence in that range has been shown to be the right one. What this calculator settles is whether your gearing lets you sit in that range at all.\",\"q2\":\"Will a bigger cassette make me slower on the flat?\",\"a2\":\"Only through the gaps between gears. Moving from an 11-28 to an 11-32 keeps the same 11-tooth top gear, so your maximum speed at a given cadence is unchanged, but the steps between sprockets get wider and it is harder to land exactly on the cadence you want on rolling terrain. The top gear figure on this page shows the speed at which your biggest gear runs out at 100 rpm, which is usually much faster than anyone pedals on a descent.\",\"q3\":\"Why does my speed not change when I change the gearing?\",\"a3\":\"Because gear ratio is not a term in the power equation. Your speed on a climb comes from the power you produce, your total weight, the gradient, and small contributions from rolling and air resistance. Changing gears changes how fast the cranks turn to deliver that power, not how much power you make. The exception is indirect: if a gear is so hard that you cannot hold the power at all, you slow down, and that is exactly the failure this page is looking for.\",\"q4\":\"Should I use my FTP as the climb
1ing power?\",\"a4\":\"Almost certainly not. FTP is roughly what you can hold for an hour in a controlled test, and very few age-groupers ride a long-course climb at that number and still run well afterwards. Use the power you have actually held on long climbs in training. With no power meter, work backwards from a climb you have ridden at a steady effort: kilograms times 9.8, times metres climbed, divided by seconds taken, is the power that lifted you, then add about a tenth on a pitch of 8% or steeper and more than that on a shallower one. The optional FTP box here only reports what share of your FTP the figure you typed would be.\",\"q5\":\"Will the cassette I need fit my bike?\",\"a5\":\"This page cannot tell you. Rear derailleurs carry a published maximum sprocket size and a total capacity, and both vary by model and generation. A recommendation of a 34-tooth sprocket is a statement about cadence, not about compatibility. Check your derailleur's specification, and budget for a longer chain if you jump several sizes.\"},\"errors\":{\"required\":\"{field} is required.\",\"number\":\"{field} must be a number. Use a full stop or a comma for the decimal point.\",\"whole\":\"{field} must be a whole number.\",\"precision\":\"{field} accepts at most {decimals, plural, one {one decimal place} other {# decimal places}}.\",\"range\":\"{field} must be between {min} and {max}.\",\"sprocketOrder\":\"The largest sprocket must have more teeth than the smallest.\",\"chainringOrder\":\"The outer chainring must have at least as many teeth as the inner.\",\"summary\":\"{count, plural, one {One thing to fix before the calculator can answer:} other {# things to fix before the calculator can answer:}}\"},\"structuredDataDescription\":\"Works out the cadence your easiest gear produces on a climb from your climbing power, total weight and gradient, reports whether that cadence falls inside the 60 to 100 rpm range tested in triathletes, and names the smallest commonly sold sprocket that would reach your target cadence.\",\"bandsShort\":{\"below-tested\":\"Below 60 rpm\",\"tested\":\"60 to 100 rpm\",\"above-tested\":\"Above 100 rpm\"}},\"raceJetLagCalculator\":{\"title\":\"Race Jet Lag Calculator\",\"subtitle\":\"Enter where you live, where you are racing and the day you land. See how far your body clock will be from race time when the alarm goes off, and how many nights it takes before your body's overnight low falls inside race-night sleep.\",\"structuredDataDescription\":\"Works out how many nights before a race in another time zone to arrive for your estimated body temperature low to fall inside race-night sleep. It uses your home and race time zones on the real dates, race start, race-morning alarm, race-night bedtime and usual wake-up time, with average adjustment of about 1 hour a day when the body clock must move earlier and 1.5 hours a day when it must move later. From 8 hours east it checks both directions and plans on the slower. The 2021 athlete consensus statement defines jet lag as travel across 3 or more time zones.\",\"form\":{\"tripTitle\":\"The trip\",\"raceNightTitle\":\"Race night and morning\",\"homeZoneLabel\":\"Home time zone\",\"homeZoneHint\":\"Where your body clock is set before you travel. If your city is not listed, pick one on the same clock or choose from every time zone at the bottom of the list.\",\"useDeviceZone\":\"Use this device's time zone\",\"raceZoneLabel\":\"Race time zone\",\"raceZoneHint\":\"Where the race is. Daylight saving is applied for each place on the dates below.\",\"zonePlaceholder\":\"Choose a time zone\",\"region\":{\"americas\":\"Americas\",\"europeAfrica\":\"Europe, Africa and the Middle East\",\"asiaPacific\":\"Asia and the Pacific\",\"all\":\"Every time zone\"},\"raceDateLabel\":\"Race date\",\"raceDateHint\":\"Used to read each clock on the right dates, since daylight saving can move the difference by an hour, or by two when both places use it in opposite hemispheres.\",\"arrivalDateLabel\":\"Arrival date\",\"arrivalDateHint\":\"The local date you land at the race, from the day before the race to {max} nights before.\",\"nightsPreview\":\"{nights, plural, one {# night at the race before race morning.} other {# nights at the race before race morning.}}\",\"raceStartLabel\":\"Race start\",\"raceStartHint\":\"Your start time on the race clock.\",\"alarmLabel\":\"Race-morning alarm\",\"alarmHint\":\"On the race clock, earlier than the start on the same morning.\",\"bedtimeLabel\":\"Race-night bedtime\",\"bedtimeHint\":\"When you plan to be asleep the night before. Bedtime to alarm can be 2 to 14 hours.\",\"homeWakeLabel\":\"Usual wake-up time at home\",\"homeWakeHint\":\"A normal day before the trip, on your home clock. Your body temperature low is estimated at 3 to 4.5 hours before this.\",\"clockFormatLabel\":\"Show times as\",\"clock12\":\"12-hour\",\"clock24\":\"24-hour\",\"reset\":\"Reset\"},\"errors\":{\"required\":\"{field}
1 is required.\",\"invalidZone\":\"{field} is not a time zone this browser recognises. Choose one from the list.\",\"invalidDate\":\"{field} must be a real date between 1970 and 2100.\",\"invalidTime\":\"{field} must be a time in hours and minutes.\",\"arrivalNotBeforeRace\":\"Arrive at least the day before the race. The calculator judges race-night sleep, so it needs a night there.\",\"arrivalTooEarly\":\"The calculator plans stays of up to {max} nights. Move the arrival date closer to the race.\",\"alarmNotBeforeStart\":\"The alarm has to be earlier than the race start on the same morning.\",\"sleepTooShort\":\"Bedtime to alarm is under 2 hours. Check the bedtime.\",\"sleepTooLong\":\"Bedtime to alarm is over 14 hours. Check the bedtime.\",\"summary\":\"{count, plural, one {One thing to fix before the calculator can answer:} other {# things to fix before the calculator can answer:}}\",\"unavailable\":\"This browser could not read one of those time zones. Choose a different one from the list.\"},\"result\":{\"planTitle\":\"When to arrive\",\"planHeadline\":\"Arrive by {date}\",\"planSettled\":\"{nights, plural, one {After # night at the race, your estimated body temperature low falls inside race-night sleep and stays there however much longer you stay.} other {After # nights at the race, your estimated body temperature low falls inside race-night sleep and stays there however much longer you stay.}}\",\"planBothPaths\":\"Planned on the slower of the two ways your clock can shift: {advance} if it moves earlier, {delay} if it moves later.\",\"chosenMeetsPlan\":\"{nights, plural, one {Your arrival date gives you # night, which meets that.} other {Your arrival date gives you # nights, which meets that.}}\",\"chosenShortOfPlan\":\"{extra, plural, one {Your arrival date is # night short of that.} other {Your arrival date is # nights short of that.}}\",\"never\":\"never\",\"nightsCount\":\"{nights, plural, =0 {0 nights} one {# night} other {# nights}}\",\"differenceLabel\":\"Clock difference on these dates\",\"differenceAhead\":\"Race clock {duration} ahead ({race} vs {home})\",\"differenceBehind\":\"Race clock {duration} behind ({race} vs {home})\",\"differenceSame\":\"Same clock ({race})\",\"shiftLabel\":\"Which way your body clock moves\",\"shiftAdvance\":\"Earlier, about 1 hour a day\",\"shiftDelay\":\"Later, about 1.5 hours a day\",\"shiftBoth\":\"Earlier by {advance} at about 1 hour a day, or later by {delay} at about 1.5 hours a day\",\"shiftNone\":\"No shift needed\",\"completeLabel\":\"Nights to adjust completely\",\"completeBoth\":\"{advance, plural, one {# night} other {# nights}} moving earlier, {delay, plural, one {# night} other {# nights}} moving later\",\"belowThreshold\":\"That is fewer than 3 time zones, below the point where the athlete consensus statement defines jet lag, although the diagnostic criteria for jet lag disorder in the CDC Yellow Book use 2. The numbers still show the small shift involved.\",\"eitherWay\":\"From 8 hours east, a body clock often shifts the long way round, later instead of earlier. You cannot count on which way yours goes, so both are shown and the plan uses whichever takes longer.\",\"chosenTitle\":\"If you land on {date}\",\"chosenNights\":\"{nights, plural, one {That is # night at the race before race morning.} other {That is # nights at the race before race morning.}}\",\"pathAdvance\":\"If your clock moves earlier\",\"pathDelay\":\"If your clock moves later\",\"lowLabel\":\"Estimated temperature low (race clock)\",\"lowValue\":\"{start} to {end}\",\"alarmFeelsLabel\":\"{local} alarm feels like\",\"startFeelsLabel\":\"{local} start feels like\",\"lagNone\":\"Your body clock has caught up with race time by race morning.\",\"lagBehind\":\"Your body clock is still {duration} behind race time on race morning.\",\"lagAhead\":\"Your body clock is still {duration} ahead of race time on race morning.\",\"behindSymptoms\":\"Running behind usually means trouble falling asleep at bedtime and trouble getting up early.\",\"aheadSymptoms\":\"Running ahead usually means sleepiness in the evening and waking earlier than you want to.\",\"planWindowRange\":\"Arrive between {early} and {late}\",\"planWindowOne\":\"Arrive on {date}\",\"planWindowAfterAlarm\":\"Landing in that window puts your estimated body temperature low inside race-night sleep. Stay longer and it drifts back toward its usual {lowStart} to {lowEnd}, which runs past your {alarm} alarm.\",\"planWindowBeforeBedtime\":\"Landing in that window puts your estimated body temperature low inside race-night sleep. Stay longer and it drifts back toward its usual {lowStart} to {lowEnd}, which starts before your {bedtime} bedtime.\",\"noShiftHeadline\":\"No time difference to adjust to\",\"noShift\":\"Both places keep the same clock on these dates, and your usual temperature low already falls inside race-night sleep.\",\"noShiftAfterAlarm\":\"Both places keep the same clock on these dates, and your usual temperature low of {lowStart} to {lowEnd} runs past your {alarm} alarm, so the alarm goes off before your body's low point has passed, as it would at home. A later alarm, if your start allows it, would help.\",\"noShiftBeforeBedtime\":\"Both places keep the same clock on these dates, and your usual temperature low of {lowStart} to {lowEnd} starts before your {bedtime} bedtime, as it would at home. An earlier bedtime, if you can manage it, would help.\",\"chosenTooEarly\":\"{extra, plural, one {Your arrival date is # night earlier than that.} other {Your arrival date is # nights earlier than that.}}\",\"chosenTooLate\":\"{extra, plural, one {Your arrival date is # night later than that.} other {Your arrival date is # nights later than that.}}\",\"chosenWorks\":\"Your arrival date works.\",\"chosenClosest\":\"Your arrival date is as close as it gets.\",\"planWindowThenAgain\":\"Landing in that window puts your estimated body temperature low inside race-night sleep. Arriving earlier than that means leaving before the clocks change at home, which alters the time difference, and the low only fits again for arrivals on {again} or earlier.\",\"planClosestFromAfterAlarm\":\"{nights, plural, one {From # night at the race} other {From # nights at the race}}, your estimated body temperature low is as close as it gets to fitting inside race-night sleep, and staying longer does not change that. Your usual temperature low of {lowStart} to {lowEnd} runs past your {alarm} alarm, so not all of it fits. A later alarm, if your start allows it, would help.\",\"planClosestFromBeforeBedtime\":\"{nights, plural, one {From # night at the race} other {From # nights at the race}}, your estimated body temperature low is as close as it gets to fitting inside race-night sleep, and staying longer does not change that. Your usual temperature low of {lowStart} to {lowEnd} starts before your {bedtime} bedtime, so not all of it fits. An earlier bedtime, if you can manage it, would help.\",\"planClosestRangeAfterAlarm\":\"{single, select, yes {Landing on that date} other {Landing on any of those dates}}
1 brings your estimated body temperature low as close as it gets to fitting inside race-night sleep, but not all of it fits. Staying longer moves it back toward its usual {lowStart} to {lowEnd}, which runs past your {alarm} alarm. A later alarm, if your start allows it, would help.\",\"planClosestRangeBeforeBedtime\":\"{single, select, yes {Landing on that date} other {Landing on any of those dates}} brings your estimated body temperature low as close as it gets to fitting inside race-night sleep, but not all of it fits. Staying longer moves it back toward its usual {lowStart} to {lowEnd}, which starts before your {bedtime} bedtime. An earlier bedtime, if you can manage it, would help.\"},\"placement\":{\"inside\":\"Temperature low inside race-night sleep\",\"edge\":\"Temperature low partly outside race-night sleep\",\"outside\":\"Temperature low outside race-night sleep\"},\"placementDetail\":{\"inside\":\"The whole estimated window falls between {bedtime} and {alarm}. The athlete consensus statement calls this partial adaptation, the point where sleep is likely to be less disrupted.\",\"insideComplete\":\"The whole estimated window falls between {bedtime} and {alarm}, and your body clock has fully adjusted.\",\"edge\":\"Part of the estimated window falls outside {bedtime} to {alarm}. The estimate is 90 minutes wide, so treat this as not yet adapted.\",\"outside\":\"None of the estimated window falls between {bedtime} and {alarm}.\"},\"strip\":{\"aria\":\"Race night from {noon} to {noon} on the race clock. Sleep from {bedtime} to {alarm}. Estimated temperature low from {lowStart} to {lowEnd}. Alarm at {alarm}. Race start at {start}.\",\"legendSleep\":\"Race-night sleep\",\"legendLow\":\"Estimated temperature low\",\"legendAlarm\":\"Alarm\",\"legendStart\":\"Race start\"},\"ladder\":{\"title\":\"Every arrival date\",\"hint\":\"One row per arrival date, from complete adjustment (or your own date, if that is earlier) up to the day before the race. When your clock could shift either way, each row shows both. Each bar runs noon to noon on the race clock, with the same key as above.\",\"listLabel\":\"Arrival dates and their result\",\"yours\":\"Your date\",\"settled\":\"Latest date that works\",\"complete\":\"Fully adjusted\",\"rowDetail\":\"Low {lowStart} to {lowEnd}. Start feels like {start}.\",\"pathEarlier\":\"If it moves earlier\",\"pathLater\":\"If it moves later\",\"earliestWorks\":\"Earliest date that works\",\"closest\":\"As close as it gets\",\"works\":\"Works\"},\"assumptions\":{\"title\":\"What the calculation assumes\",\"rates\":\"Your body clock moves about 1 hour a day when it has to go earlier and about 1.5 hours a day when it has to go later, the averages in the CDC Yellow Book 2026. The consensus statement's rule of thumb for going later is faster, at 2 hours a day, so these numbers lean toward arriving earlier.\",\"days\":\"Adjustment starts the day you land and counts one day for each night at the race before race morning, with at least one night. Tiredness from the journey itself is not included.\",\"low\":\"Your temperature low is taken as 3 to 4.5 hours before your usual wake time, the range Eastman and Burgess give for someone who sleeps about 8 hours.\",\"clocks\":\"Your home clock is read on the day before you land and the race clock at the race start, so each arrival date uses the clock you actually left on. Bedtime and alarm are read on the race-morning clock.\",\"preTrip\":\"No credit is given for shifting your sleep before you travel. It may help, but the calculator cannot know how much of it you managed.\"},\"sections\":{\"whyTitle\":\"One day per time zone is only half the answer\",\"why1\":\"The usual advice for racing abroad is to arrive a day early for every time zone you cross, and a 2026 review of athlete travel in Sports Medicine still recommends it. It is a sensible start. It leaves out two things that change how many nights you need: which way you travelled, and what time your alarm goes off.\",\"why2\":\"Body clocks shift later more easily than they shift earlier. After flying west your clock has to move later, which the CDC Yellow Book puts at about 1.5 hours a day on average. After flying east it has to move earlier, at about 1 hour a day. The same 6-hour time difference is about 4 nights of adjustment in one direction and 6 in the other.\",\"why3\":\"Triathlons start early, which makes direction matter more. A 4:00 a.m. alarm after flying west lands in your body's morning. After flying east, the same alarm can go off before your body temperature has reached its daily low, which is also when alertness bottoms out. That is the situation this calculator is built to catch before you book.\",\"evidenceTitle\":\"What the research agrees on\",\"evidence1\":\"A consensus statement by 26 researchers and clinicians with expertise in travel fatigue, jet lag and sleep in sport, published in Sports Medicine in 2021, defines jet lag as the disruption that follows rapid travel across 3 or more time zones. The diagnostic criteria for jet lag disorder in the CDC Yellow Book use 2. The consensus statement treats travel fatigue, the tiredness that comes from the journey itself, as a separate problem that happens with or without a time change.\",\"evidence2\":\"The same statement gives a practical marker of progress. Core body temperature has a daily low point, typically between 3:00 a.m. and 7:00 a.m., which lines up with the lowest alertness of the day. Once that low falls inside your scheduled sleep at the destination, you are partially adapted and likely to sleep with less disruption. Once it is back at the time it held at home, adaptation is complete. The verdict in the calculator applies that test to the night before your race.\",\"evidence3\":\"Eastman and Burgess, in a review for Sleep Medicine Clinics, place the temperature low about 3 to 4.5 hours before your usual wake time if you sleep about 8 hours. They also report that after eastward flights the clock often shifts the wrong way, later instead of earlier, especially across 8 or more time zones. As general guidelines they give shifting earlier for up to 7 time zones east and later for 8 or more, noting that these may not apply to every traveller. The consensus statement makes the same point for trips of more than 8 hours east.\",\"evidence4\":\"The daily rates are averages, not promises. Eastman and Burgess quote early field estimates from real travellers of 57 minutes a day for shifting earlier and 92 minutes a day for shifting later, and use 1 and 1.5 hours a day in a worked example, calling those the classic averages for real flights. The CDC Yellow Book gives the same averages. The consensus statement's rule of thumb is 1 and 2 hours. Individual clocks vary around all of them.\",\"workedTitle\":\"Three worked examples\",\"worked1\":\"An athlete from New York racing in Berlin 
1in late June faces a 6-hour shift east. With a 9:00 p.m. bedtime, a 4:00 a.m. alarm and a usual 6:30 a.m. wake-up at home, landing 3 nights before the race leaves the body clock 3 hours behind race time. The estimated temperature low falls between 5:00 a.m. and 6:30 a.m., after the alarm, and a 7:00 a.m. start feels like 4:00 a.m. The low only settles inside race-night sleep after 6 nights, which is complete adaptation. With a 5:00 a.m. alarm, 5 nights is enough.\",\"worked2\":\"The same athlete racing in Honolulu in October travels 6 hours west. After 2 nights the 4:00 a.m. alarm feels like 7:00 a.m. and a 7:00 a.m. start like 10:00 a.m. With the same 9:00 p.m. bedtime, the temperature low falls inside race-night sleep after a single night, and the body clock has fully adjusted after 4.\",\"worked3\":\"Los Angeles to Berlin in June is 9 hours east, past the point where the clock may go either way. With the same 9:00 p.m. bedtime, 4:00 a.m. alarm and 6:30 a.m. wake-up, shifting earlier at 1 hour a day takes 9 nights for the low to settle. Shifting later has 15 hours to cover at 1.5 hours a day and needs 10 nights to finish, yet the low is already inside race-night sleep after 7. Because you cannot count on which way a body clock goes, the calculator plans on 9 nights.\",\"modelTitle\":\"How the calculation works\",\"model1\":\"It reads the UTC offset for each place from your browser's time-zone database: home on the day before each possible arrival, and the race at its start time. Daylight saving is handled at both ends of the trip. The difference is kept between 12 hours behind and 12 hours ahead, which is why Sydney to Honolulu in October comes out as a 3-hour shift east rather than a 21-hour shift west.\",\"model2\":\"Each night at the race removes 1 hour from a shift earlier or 1.5 hours from a shift later, until nothing is left, and the estimated temperature low moves with it. For every night the calculator places that 90-minute window on the race-night clock and checks whether all of it, part of it or none of it falls between your bedtime and your alarm.\",\"model3\":\"The recommended arrival is the first number of nights from which every longer stay also keeps the whole window inside race-night sleep, for every way your clock might shift. A window can pass through your sleep on the way to its home timing and come out the other side, so one good night is not enough. If your usual low itself runs past your alarm or starts before your bedtime, no long stay keeps it inside. The calculator then shows the arrival dates where it does fall inside, if there are any, or otherwise the stay that leaves the least of it outside, and says which of your times is in the way.\",\"limitsTitle\":\"Where this stops being reliable\",\"limits1\":\"The temperature low is an estimate, not a measurement. The 90-minute window allows for some of that, but if you usually sleep much less than 8 hours the estimate fits you less well. How fast you adapt also varies: the consensus statement notes that morning types tend to adapt better to eastward travel and evening types to westward travel.\",\"limits2\":\"The daily rates are averages. Light is the main signal a body clock follows, and bright light at the wrong time of day can push it the wrong way. Eastman and Burgess warn that published light schedules can give completely opposite, often incorrect instructions, which is why this page does not prescribe light times from an estimate this broad. The CDC Yellow Book points travellers to jet lag calculators for light timing; if you use one, that warning still applies.\",\"limits3\":\"It does not model tiredness from the journey, a late arrival or sleep lost on the plane. Those add to jet lag rather than replace it.\",\"limits4\":\"It gives no advice on melatonin, sleeping pills or caffeine. The consensus statement and the CDC discuss all three. The consensus statement says sleeping pills should be taken only on a doctor's orders and advises athletes to vet any supplement for prohibited substances. That conversation belongs with your doctor, and so does travel planning for anyone with a diagnosed sleep disorder.\",\"limits5\":\"It does not predict how much slower you will race. Misalignment can affect performance depending on when you compete, the consensus statement says, but there is no reliable figure for minutes lost by one athlete on one course, and this page does not invent one.\",\"lateTitle\":\"If you cannot arrive early enough\",\"late1\":\"Most age-groupers cannot take 9 days off for one race. The consensus statement's travel-fatigue recommendations, which rest on expert opinion rather than trials, are to protect your sleep before you travel, keep naps brief and as early in the day as possible, and keep training on arrival at low to moderate intensity. They help with the journey, not the body-clock gap.\",\"late2\":\"The CDC notes that moving your sleep 1 hour earlier each day before flying east, or 1 hour later before flying west, for the 2 to 3 days before the trip may reduce the adjustment left on arrival. The calculator does not count that, so if you manage it, treat its numbers as the cautious case.\",\"late3\":\"You can also change the part of the schedule you control. In the first worked example, moving the alarm an hour later saves a night. If your wave or rolling start allows a later alarm, try it in the calculator before paying for another night away.\",\"faqTitle\":\"Common questions\",\"sourcesTitle\":\"Sources\",\"sourcesConsensus\":\"The 3-zone jet lag definition, the temperature-low test for partial and complete adaptation, the direction-of-travel patterns and the travel fatigue recommendations on this page.\",\"sourcesEastman\":\"Where the temperature low sits relative to waking, the field rates of adjustment, and clocks shifting the wrong way after eastward flights.\",\"sourcesCdc\":\"The 1 hour and 1.5 hours a day planning rates and the advice on shifting sleep before the trip.\",\"sourcesBlueprint\":\"The recommendation to allow one recovery day per time zone before competition.\",\"sourcesNote\":\"The calculator's numbers come from these sources and the times you enter. It is a planning aid, not medical advice.\",\"afterTitle\":\"Once the flights are booked\",\"after1\":\"The weeks around a destination race still have to fit the trip. If you train with Transition, tell the coach the dates you are away and what you will have access to; it saves that with an end date and adjusts the affected workouts. When you land, change the time zone in the app's display settings so sessions and activities stay on the right day, and change it back when you return. More on\",\"after1Link\":\"how the coach works\",\"after2\":\"For the rest of race week, the\",\"after2Link\":\"triathlon race checklist\",\"after3\":\"covers what to pack and the\",\"after3Link\":\"race planning guide\",\"after4\":\"covers the final days.\"},\"faq\":{\"q1\":\"How many days before a race should I arrive after flying east?\",\"a1\":\"Plan on about one night for every hour the race clock is ahead of home: the CDC Yellow Book 2026 puts eastward adjustment at about 1 hour a day. The 2021 athlete consensus statement defines jet lag as rapid travel across 3 or more time zones. An early alarm can make that the minimum rather than a generous estimate: flying 6 hours east with a 9:00 p.m. bedtime, a 4:00 a.m. alarm and a usual 6:30 a.m. wake-up, it takes all 6 nights for the estimated body temperature low to fall inside race-night sleep. From 8 hours east the clock may shift later instead, at about 1.5 hours a day, which changes the count.\",\"q2\":\"Is jet lag worse flying east or west?\",\"a2\"
1:\"East, for most people. After an eastward flight the body clock has to move earlier, which it does at about 1 hour a day on average, while after a westward flight it moves later at about 1.5 hours a day, according to the CDC Yellow Book 2026. A 6-hour difference is therefore about 6 nights of adjustment going east and 4 going west. The 2021 athlete consensus statement defines jet lag as travel across 3 or more time zones, and from 8 hours east the clock may shift later instead of earlier.\",\"q3\":\"What if my race is 8 or more hours east of home?\",\"a3\":\"Then your body clock may adjust the long way round. Eastman and Burgess report that after eastward flights clocks often shift later instead of earlier, especially across 8 or more time zones, and the 2021 athlete consensus statement says that beyond 8 hours east, adapting by delaying may be preferable. Shifting later covers 24 hours minus the time difference at about 1.5 hours a day; shifting earlier covers the difference itself at about 1 hour a day. The calculator shows both and plans on whichever takes longer to settle.\",\"q4\":\"Does daylight saving time change how many days I need?\",\"a4\":\"It can. Daylight saving can move the time difference by an hour, or by two when both places use it and sit in opposite hemispheres, and at about 1 hour a day eastward or 1.5 hours a day westward that can add or remove a night or more. New York is 6 hours ahead of Honolulu in October but 5 hours ahead in January, because Hawaii does not use daylight saving, and London is 11 hours behind Sydney in January but 9 hours behind in July. The calculator reads your home clock on the day before you land and the race clock at the race start, so it applies the right offset for each.\",\"q5\":\"Should I take melatonin or a sleeping pill for jet lag before a race?\",\"a5\":\"This page does not advise on either. The 2021 athlete jet lag consensus statement and the CDC Yellow Book 2026 both discuss melatonin and sleeping pills. The consensus statement says sleeping pills should be taken only on a doctor's orders and advises athletes to vet any supplement for prohibited substances, so ask your doctor. The calculator assumes you take neither.\"}}}
1,\"now\":\"$undefined\",\"timeZone\":\"UTC\",\"children\":[\"$L32\",\"$L33\"]}]\n"])</script>
1<script>self.__next_f.push([1,"34:I[32935,[\"8530\",\"static/chunks/app/%5Blocale%5D/error-456007683c45765c.js\"],\"default\"]\n32:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"document.documentElement.lang=\\\"en\\\"\"}}]\n"])</script>
1<script>self.__next_f.push([1,"33:[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$34\",\"errorStyles\":[],\"errorScripts\":[],\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center justify-center min-h-screen bg-background px-6 text-center\",\"children\":[\"$L35\",[\"$\",\"h1\",null,{\"className\":\"text-6xl font-bold text-primary mb-4\",\"children\":\"404\"}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold text-foreground mb-2\",\"children\":\"Wrong turn on the course\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-8 max-w-md\",\"children\":\"The page you're looking for doesn't exist. Let's get you back on track.\"}],[\"$\",\"div\",null,{\"className\":\"flex gap-4\",\"children\":[\"$L36\",\"$L37\"]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"])</script>
1<script>self.__next_f.push([1,"2b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"black\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"black\"}],[\"$\",\"meta\",\"4\",{\"name\":\"color-scheme\",\"content\":\"dark\"}]]\n27:null\n"])</script>
1<script>self.__next_f.push([1,"35:[\"$\",\"$L30\",null,{\"ref\":\"$undefined\",\"href\":\"/\",\"locale\":\"$undefined\",\"localeCookie\":\"$2f:props:localeCookie\",\"className\":\"mb-8\",\"children\":[\"$\",\"$L8\",null,{\"src\":\"/logo_full.webp\",\"alt\":\"Transition Logo\",\"width\":215,\"height\":25,\"className\":\"h-6 w-auto hover:opacity-80 transition-opacity\"}]}]\n36:[\"$\",\"$L30\",null,{\"ref\":\"$undefined\",\"href\":\"/\",\"locale\":\"$undefined\",\"localeCookie\":\"$2f:props:localeCookie\",\"className\":\"bg-primary text-primary-foreground font-semibold px-6 py-3 rounded-lg hover:bg-primary/90 transition-colors\",\"children\":\"Back to Home\"}]\n37:[\"$\",\"$L30\",null,{\"ref\":\"$undefined\",\"href\":\"/support\",\"locale\":\"$undefined\",\"localeCookie\":\"$2f:props:localeCookie\",\"className\":\"border border-border text-foreground font-semibold px-6 py-3 rounded-lg hover:bg-muted transition-colors\",\"children\":\"Get Help\"}]\n"])</script>
1<script>self.__next_f.push([1,"29:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Transition | The smartest way to train for a triathlon | Transition\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Transition\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://www.transition.fun\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Transition\"}],[\"$\",\"meta\",\"5\",{\"name\":\"keywords\",\"content\":\"triathlon training app,AI triathlon coach,personalized triathlon workouts,triathlon training plan,swim bike run training,triathlon performance analytics,ironman training program,triathlon AI coach,smart triathlon training,triathlon workout generator,triathlon training software,AI powered triathlon training app,personalized triathlon coaching platform,intelligent triathlon workout planning,triathlon training with artificial intelligence,adaptive triathlon training program,TrainingPeaks alternative,Strava training alternative,best triathlon training app,triathlon coaching app,improve triathlon performance,triathlon training optimization,triathlon race preparation,triathlon training consistency,triathlon workout personalization\"}],[\"$\",\"meta\",\"6\",{\"name\":\"publisher\",\"content\":\"Transition\"}],[\"$\",\"meta\",\"7\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"8\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"9\",{\"name\":\"category\",\"content\":\"Health \u0026 Fitness\"}],[\"$\",\"link\",\"10\",{\"rel\":\"canonical\",\"href\":\"https://www.transition.fun/\"}],[\"$\",\"link\",\"11\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://www.transition.fun/\"}],[\"$\",\"link\",\"12\",{\"rel\":\"alternate\",\"hrefLang\":\"de\",\"href\":\"https://www.transition.fun/de/\"}],[\"$\",\"link\",\"13\",{\"rel\":\"alternate\",\"hrefLang\":\"nl\",\"href\":\"https://www.transition.fun/nl/\"}],[\"$\",\"link\",\"14\",{\"rel\":\"alternate\",\"hrefLang\":\"fr\",\"href\":\"https://www.transition.fun/fr/\"}],[\"$\",\"link\",\"15\",{\"rel\":\"alternate\",\"hrefLang\":\"fr-CA\",\"href\":\"https://www.transition.fun/fr-CA/\"}],[\"$\",\"link\",\"16\",{\"rel\":\"alternate\",\"hrefLang\":\"es\",\"href\":\"https://www.transition.fun/es/\"}],[\"$\",\"link\",\"17\",{\"rel\":\"alternate\",\"hrefLang\":\"es-MX\",\"href\":\"https://www.transition.fun/es-MX/\"}],[\"$\",\"link\",\"18\",{\"rel\":\"alternate\",\"hrefLang\":\"it\",\"href\":\"https://www.transition.fun/it/\"}],[\"$\",\"link\",\"19\",{\"rel\":\"alternate\",\"hrefLang\":\"pt\",\"href\":\"https://www.transition.fun/pt/\"}],[\"$\",\"link\",\"20\",{\"rel\":\"alternate\",\"hrefLang\":\"pt-PT\",\"href\":\"https://www.transition.fun/pt-PT/\"}],[\"$\",\"link\",\"21\",{\"rel\":\"alternate\",\"hrefLang\":\"da\",\"href\":\"https://www.transition.fun/da/\"}],[\"$\",\"link\",\"22\",{\"rel\":\"alternate\",\"hrefLang\":\"sv\",\"href\":\"https://www.transition.fun/sv/\"}],[\"$\",\"link\",\"23\",{\"rel\":\"alternate\",\"hrefLang\":\"nb\",\"href\":\"https://www.transition.fun/nb/\"}],[\"$\",\"link\",\"24\",{\"rel\":\"alternate\",\"hrefLang\":\"fi\",\"href\":\"https://www.transition.fun/fi/\"}],[\"$\",\"link\",\"25\",{\"rel\":\"alternate\",\"hrefLang\":\"pl\",\"href\":\"https://www.transition.fun/pl/\"}],[\"$\",\"link\",\"26\",{\"rel\":\"alternate\",\"hrefLang\":\"cs\",\"href\":\"https://www.transition.fun/cs/\"}],[\"$\",\"link\",\"27\",{\"rel\":\"alternate\",\"hrefLang\":\"sk\",\"href\":\"https://www.transition.fun/sk/\"}],[\"$\",\"link\",\"28\",{\"rel\":\"alternate\",\"hrefLang\":\"hu\",\"href\":\"https://www.transition.fun/hu/\"}],[\"$\",\"link\",\"29\",{\"rel\":\"alternate\",\"hrefLang\":\"ro\",\"href\":\"https://www.transition.fun/ro/\"}],[\"$\",\"link\",\"30\",{\"rel\":\"alternate\",\"hrefLang\":\"sl\",\"href\":\"https://www.transition.fun/sl/\"}],[\"$\",\"link\",\"31\",{\"rel\":\"alternate\",\"hrefLang\":\"lt\",\"href\":\"https://www.transition.fun/lt/\"}],[\"$\",\"link\",\"32\",{\"rel\":\"alternate\",\"hrefLang\":\"el\",\"href\":\"https://www.transition.fun/el/\"}],[\"$\",\"link\",\"33\",{\"rel\":\"alternate\",\"hrefLang\":\"tr\",\"href\":\"https://www.transition.fun/tr/\"}],[\"$\",\"link\",\"34\",{\"rel\":\"alternate\",\"hrefLang\":\"ru\",\"href\":\"https://www.transition.fun/ru/\"}],[\"$\",\"link\",\"35\",{\"rel\":\"alternate\",\"hrefLang\":\"uk\",\"href\":\"https://www.transition.fun/uk/\"}],[\"$\",\"link\",\"36\",{\"rel\":\"alternate\",\"hrefLang\":\"ar\",\"href\":\"https://www.transition.fun/ar/\"}],\"$L38\",\"$L39\",\"$L3a\",\"$L3b\",\"$L3c\",\"$L3d\",\"$L3e\",\"$L3f\",\"$L40\",\"$L41\",\"$L42\",\"$L43\",\"$L44\",\"$L45\",\"$L46\",\"$L47\",\"$L48\",\"$L49\",\"$L4a\",\"$L4b\",\"$L4c\",\"$L4d\",\"$L4e\",\"$L4f\",\"$L50\",\"$L51\",\"$L52\",\"$L53\",\"$L54\",\"$L55\",\"$L56\",\"$L57\",\"$L58\",\"$L59\"],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
1<script>self.__next_f.push([1,"5a:I[80622,[],\"IconMark\"]\n38:[\"$\",\"link\",\"37\",{\"rel\":\"alternate\",\"hrefLang\":\"he\",\"href\":\"https://www.transition.fun/he/\"}]\n39:[\"$\",\"link\",\"38\",{\"rel\":\"alternate\",\"hrefLang\":\"th\",\"href\":\"https://www.transition.fun/th/\"}]\n3a:[\"$\",\"link\",\"39\",{\"rel\":\"alternate\",\"hrefLang\":\"vi\",\"href\":\"https://www.transition.fun/vi/\"}]\n3b:[\"$\",\"link\",\"40\",{\"rel\":\"alternate\",\"hrefLang\":\"id\",\"href\":\"https://www.transition.fun/id/\"}]\n3c:[\"$\",\"link\",\"41\",{\"rel\":\"alternate\",\"hrefLang\":\"ja\",\"href\":\"https://www.transition.fun/ja/\"}]\n3d:[\"$\",\"link\",\"42\",{\"rel\":\"alternate\",\"hrefLang\":\"ko\",\"href\":\"https://www.transition.fun/ko/\"}]\n3e:[\"$\",\"link\",\"43\",{\"rel\":\"alternate\",\"hrefLang\":\"zh\",\"href\":\"https://www.transition.fun/zh/\"}]\n3f:[\"$\",\"link\",\"44\",{\"rel\":\"alternate\",\"hrefLang\":\"en-GB\",\"href\":\"https://www.transition.fun/en-GB/\"}]\n40:[\"$\",\"link\",\"45\",{\"rel\":\"alternate\",\"hrefLang\":\"en-AU\",\"href\":\"https://www.transition.fun/en-AU/\"}]\n41:[\"$\",\"link\",\"46\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://www.transition.fun/\"}]\n42:[\"$\",\"meta\",\"47\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}]\n43:[\"$\",\"meta\",\"48\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Transition\"}]\n44:[\"$\",\"meta\",\"49\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"black-translucent\"}]\n45:[\"$\",\"meta\",\"50\",{\"property\":\"og:title\",\"content\":\"Transition | The smartest way to train for a triathlon\"}]\n46:[\"$\",\"meta\",\"51\",{\"property\":\"og:description\",\"content\":\"Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!\"}]\n47:[\"$\",\"meta\",\"52\",{\"property\":\"og:url\",\"content\":\"https://www.transition.fun/\"}]\n48:[\"$\",\"meta\",\"53\",{\"property\":\"og:site_name\",\"content\":\"Transition\"}]\n49:[\"$\",\"meta\",\"54\",{\"property\":\"og:locale\",\"content\":\"en\"}]\n4a:[\"$\",\"meta\",\"55\",{\"property\":\"og:image\",\"content\":\"https://www.transition.fun/transition_banner_social.jpg\"}]\n4b:[\"$\",\"meta\",\"56\",{\"property\":\"og:image:width\",\"content\":\"1200\"}]\n4c:[\"$\",\"meta\",\"57\",{\"property\":\"og:image:height\",\"conten"])</script>
1<script>self.__next_f.push([1,"t\":\"630\"}]\n4d:[\"$\",\"meta\",\"58\",{\"property\":\"og:image:alt\",\"content\":\"Transition | The smartest way to train for a triathlon - Transition\"}]\n4e:[\"$\",\"meta\",\"59\",{\"property\":\"og:type\",\"content\":\"website\"}]\n4f:[\"$\",\"meta\",\"60\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}]\n50:[\"$\",\"meta\",\"61\",{\"name\":\"twitter:site\",\"content\":\"@transitionapp\"}]\n51:[\"$\",\"meta\",\"62\",{\"name\":\"twitter:creator\",\"content\":\"@transitionapp\"}]\n52:[\"$\",\"meta\",\"63\",{\"name\":\"twitter:title\",\"content\":\"Transition | The smartest way to train for a triathlon\"}]\n53:[\"$\",\"meta\",\"64\",{\"name\":\"twitter:description\",\"content\":\"Get personalized triathlon training with AI-powered workouts for swim, bike, and run. Advanced analytics, adaptive plans, and 24/7 AI coaching. Try free!\"}]\n54:[\"$\",\"meta\",\"65\",{\"name\":\"twitter:image\",\"content\":\"https://www.transition.fun/transition_banner_social.jpg\"}]\n55:[\"$\",\"link\",\"66\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon/favicon.ico\"}]\n56:[\"$\",\"link\",\"67\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}]\n57:[\"$\",\"link\",\"68\",{\"rel\":\"icon\",\"href\":\"/favicon/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}]\n58:[\"$\",\"link\",\"69\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon/apple-touch-icon.png\"}]\n59:[\"$\",\"$L5a\",\"70\",{}]\n2e:\"$29:metadata\"\n"])</script>
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"9156303354cf4f6e959d11076f1fd286","r":1,"spa":2}' crossorigin="anonymous"></script>
1
2</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.