PageSourceSearch

https://imperfect.co/goals

html imperfect.co collected 2026-10-08 05:40:50 UTC 93,628 bytes, 3 lines download raw bytes

1<!DOCTYPE html><html lang="en-US" dir="ltr"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content"/><link rel="stylesheet" href="/_next/static/css/7e7d96b1e6991756.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/47b536edde8bfd1c.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/8b4af9a25f1adf6a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-f1fc9f4676940660.js"/>
1<script src="/_next/static/chunks/4bd1b696-100b9d70ed4e49c1.js" async=""></script>
1<script src="/_next/static/chunks/1255-01286926a844a6fe.js" async=""></script>
1<script src="/_next/static/chunks/main-app-e7826f4a58c1dccd.js" async=""></script>
1<script src="/_next/static/chunks/app/global-error-205af0af1a8d8e9c.js" async=""></script>
1<script src="/_next/static/chunks/05f6971a-c04c4416fa72343e.js" async=""></script>
1<script src="/_next/static/chunks/5106a963-93862554c5fc671e.js" async=""></script>
1<script src="/_next/static/chunks/8195-ef08dbac07622eb3.js" async=""></script>
1<script src="/_next/static/chunks/1884-d8a280610011e051.js" async=""></script>
1<script src="/_next/static/chunks/5376-04a3d57f5f04927f.js" async=""></script>
1<script src="/_next/static/chunks/4370-fbd0cbf04329f6b8.js" async=""></script>
1<script src="/_next/static/chunks/5239-565d14304b7ab0c2.js" async=""></script>
1<script src="/_next/static/chunks/26-4d8d96e57b1c8a9c.js" async=""></script>
1<script src="/_next/static/chunks/6720-eb48d369b243f30f.js" async=""></script>
1<script src="/_next/static/chunks/5571-8293767e1b55089b.js" async=""></script>
1<script src="/_next/static/chunks/5074-ce51be6db5908f02.js" async=""></script>
1<script src="/_next/static/chunks/2683-d942122f9dfcba01.js" async=""></script>
1<script src="/_next/static/chunks/app/goals/page-41bc6aee9d2bfa08.js" async=""></script>
1<meta name="next-size-adjust" content=""/><link rel="preload" href="/fonts/rink-medium.woff2" as="font" type="font/woff2" crossorigin="anonymous"/><link rel="preload" href="/fonts/rink-semi-bold.woff2" as="font" type="font/woff2" crossorigin="anonymous"/>
1<script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script>
1</head><body class="__className_f367f3 antialiased overflow-x-hidden bg-white text-black"><a href="https://imperfect.co/cdn-cgi/content?id=2xPsuM7yu7NvqsUpY.xWjuYkAI3GgsKAdVkN7ZRElwY-1791438050.3634079-1.2.1.1-oUSQQlz6B5DdQW3Dh_sUDJiFVLf9eYNURauXgS.5cChoV92_zUQuTAtAJaol93in" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a><div hidden=""><!--$?--><template id="B:0"></template><!--/$--></div><div dir="ltr" lang="en-US" style="font-family:var(--font-sans)" class="route-theme min-h-dvh w-full bg-[var(--route-bg)] text-[var(--route-fg)] lg:bg-[var(--route-goal-ground)]">
1<script>(function(){try{var p=localStorage.getItem('route-theme');var d=p==='dark'||(p!=='light'&&matchMedia('(prefers-color-scheme: dark)').matches);document.documentElement.dataset.routeTheme=d?'dark':'light'}catch(e){}})()</script>
1<main class="relative isolate flex w-full flex-col lg:flex-row min-h-dvh"><div class="flex min-h-0 min-w-0 flex-1 flex-col"><div class="flex min-h-0 flex-1 flex-col px-6 pb-[env(safe-area-inset-bottom,0px)] lg:pb-8"><section class="flex min-h-0 min-w-0 flex-1 flex-col" data-goals-phase="landing"><div data-goals-landing-stage="true" class="max-lg:contents lg:relative lg:mx-auto lg:h-[calc(856px*var(--goals-landing-scale,1))] lg:w-[calc(1321px*var(--goals-landing-scale,1))] lg:shrink-0">
1<script>(function(n){if(!n)return;var w=innerWidth,h=innerHeight;n.style.setProperty('--goals-landing-phone-scale',String((function bJ(a,b){return a<672||a>=1024?1:Math.round(1e4*Math.min(1.6,Math.max(1,Math.min((a-48)/345,b/704))))/1e4})(w,h)));n.style.setProperty('--goals-landing-scale',String((function bK(a,b){return Math.round(1e4*Math.min(1.5,Math.max(.6,Math.min((a-48)/1321,(b-32)/856))))/1e4})(w,h)))})(document.currentScript&&document.currentScript.parentElement)</script>
1<a href="/" aria-label="Imperfect home" class="group hidden lg:inline" data-goals-landing-home="true"><img src="/goals-landing-collage/logo-imperfect.svg" alt="Imperfect" data-goals-landing-logo-desktop="true" width="138" height="48.66" class="route-logo fixed left-[4.1667vw] top-[4.9771vw] z-30 hidden h-[3.3792vw] w-[9.5833vw] max-w-none lg:block transition-transform duration-300 hover:-rotate-6 rounded-sm group-focus-visible:outline-2 group-focus-visible:outline-offset-4 group-focus-visible:outline-[var(--route-muted)]"/></a><div aria-hidden="true" data-goals-collage="true" class="pointer-events-none fixed inset-0 hidden overflow-hidden lg:block"><img src="/goals-landing-collage/collage-desktop.png" alt="" data-goals-collage-theme="light" aria-hidden="true" width="614.3" height="525.63" class="absolute bottom-0 left-0 h-[525.63px] w-[614.3px] max-w-none"/><img src="/goals-landing-collage/collage-desktop-dark.png" alt="" data-goals-collage-theme="dark" aria-hidden="true" width="614.3" height="525.63" class="absolute bottom-0 left-0 h-[525.63px] w-[614.3px] max-w-none"/></div><div class="relative flex flex-1 flex-col justify-start lg:absolute lg:left-0 lg:top-0 lg:h-[856px] lg:w-[1321px] lg:origin-top-left lg:justify-normal lg:[scale:var(--goals-landing-scale,1)]" data-goals-entry="true" data-goals-example-phase="in"><a href="/" aria-label="Imperfect home" class="group lg:hidden" data-goals-landing-home="true"><img src="/goals-landing-collage/logo-imperfect.svg" alt="Imperfect" data-goals-landing-logo="true" width="138" height="48.66" class="route-logo absolute left-0 top-4 z-30 block h-[26.8px] w-[76px] max-w-none min-[42rem]:max-lg:[zoom:var(--goals-landing-phone-scale,1)] lg:hidden transition-transform duration-300 hover:-rotate-6 rounded-sm group-focus-visible:outline-2 group-focus-visible:outline-offset-4 group-focus-visible:outline-[var(--route-muted)]"/></a><div data-goals-landing-phone-theme-switch="true" class="absolute left-[5.75rem] top-[1.25rem] z-30 flex min-[42rem]:max-lg:[zoom:var(--goals-landing-phone-scale,1)] lg:hidden"><button type="button" role="switch" aria-checked="false" aria-label="Dark mode" title="Dark mode" data-goals-theme-switch="true" class="pointer-events-auto relative h-[1.1875rem] w-[2.375rem] shrink-0 cursor-pointer rounded-full bg-[var(--route-goal-switch-track)] shadow-[inset_0_0_0_var(--route-goal-switch-edge-width)_var(--route-goal-switch-edge)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--route-brand-mark)]"></button></div><div aria-hidden="true" data-goals-phone-collage="true" class="pointer-events-none absolute -left-6 -right-6 inset-y-0 overflow-hidden lg:hidden"><img src="/goals-landing-collage/collage-phone.png" alt="" data-goals-collage-theme="light" aria-hidden="true" width="207.5" height="362.71" class="absolute right-0 top-[-54px] h-[362.71px] w-[207.5px] max-w-none"/><img src="/goals-landing-collage/collage-phone-dark.png" alt="" data-goals-collage-theme="dark" aria-hidden="true" width="207.5" height="362.71" class="absolute right-0 top-[-54px] h-[362.71px] w-[207.5px] max-w-none"/></div><div data-goals-landing-column="true" class="relative mx-auto flex w-full max-w-[345px] flex-col pt-[83px] max-lg:flex-1 min-[42rem]:max-lg:[zoom:var(--goals-landing-phone-scale,1)] lg:max-w-[1321px] lg:flex-1 lg:flex-row lg:items-stretch lg:gap-[159px] lg:pe-[72px] lg:ps-[178px] lg:pt-0"><div class="flex w-full min-w-0 flex-col max-lg:flex-1 lg:relative lg:w-[364px]"><div class="flex flex-col max-lg:grow-[3] lg:pt-[245px]"><div class="w-full max-lg:flex max-lg:flex-1 max-lg:flex-col"><div aria-hidden="true" class="max-lg:grow-[3] lg:hidden"></div><h1 data-goals-display="true" class="whitespace-nowrap text-[48px] leading-[45.6px] text-[var(--route-goal-headline)] max-[389px]:text-[44px] max-[389px]:leading-[41.8px] lg:text-[64px] lg:leading-[67px]" style="font-family:var(--font-rink);font-weight:500">Goals<span aria-hidden="true" data-goals-display-dot="true" class="ms-[2px] inline-block h-[6.8px] w-[6.8px] rounded-full bg-[var(--color-purple-300)] align-baseline lg:ms-[9px] lg:h-[10px] lg:w-[10px]"></span></h1><h2 data-goals-headline="true" class="mt-3 text-start text-[13px] font-medium leading-[18px] text-[var(--route-goal-entry-ink)] max-[389px]:text-[12px] max-[389px]:leading-[16.6px] lg:mt-8 lg:text-[24px] lg:leading-[32px]">Talk through your goals with an expert coach.</h2><p data-goals-lede="true" class="mt-3 max-w-[331px] text-start text-[12px] leading-[16.33px] text-[var(--route-goal-entry-ink)] lg:mt-5 lg:max-w-none lg:text-[15px] lg:leading-[24px]">
1Have an 8-minute conversation to talk through your ambitions, baseline, and schedule. Imperfect weighs the trade-offs with you to land on a goal that fits your life.</p><div aria-hidden="true" class="max-lg:grow lg:hidden"></div><div data-goals-phone-picture-slot="true" class="relative pt-[63px] pb-[32px] lg:hidden"><p data-goals-phone-example-tag="true" aria-hidden="true" class="absolute -left-[41px] top-[56px] max-[389px]:top-[16px] min-[42rem]:max-lg:left-0 min-[42rem]:max-lg:top-[16px] min-[42rem]:max-lg:rounded-[5.31px] min-[42rem]:max-lg:ps-[10.6px] z-10 flex h-[23.2px] items-center rounded-e-[5.31px] bg-[var(--route-goal-example-tag)] ps-[30px] pe-[10.6px] text-[10px] font-semibold leading-none tracking-[0.0778px] text-[var(--route-goal-example-axis)]">What your goal will look like</p><div data-goals-entry-picture="phone" class="mx-auto w-full max-w-[305px] pt-4 [--goals-chart-shrink:0.8433] [@media(max-height:700px)]:max-w-[248px] [@media(min-height:760px)]:max-w-[min(345px,calc(305px+(100dvh-704px)*0.5))] lg:[--goals-chart-shrink:1]"><div class="[--goals-side-reach:24px] lg:[--goals-side-reach:44px] "><div class="relative w-full"><svg data-goals-conversation-picture="true" viewBox="-6 -6 312 312" role="img" aria-label="What your goal will look like" class="mx-auto block overflow-visible" style="width:calc(74.724% * var(--goals-chart-shrink, 1))"><g data-goals-conversation-grid="true" class="fill-none" stroke-width="1.23"><path data-goals-conversation-ring="1" d="M 150.000 100.667 L 196.919 134.755 L 178.997 189.912 L 121.003 189.912 L 103.081 134.755 Z" stroke="var(--route-goal-example-ring)" stroke-width="1.23" class="goals-grid-build" style="animation-delay:220ms;animation-duration:560ms"></path><path data-goals-conversation-ring="2" d="M 150.000 51.333 L 243.838 119.510 L 207.995 229.823 L 92.005 229.823 L 56.162 119.510 Z" stroke="var(--route-goal-example-ring)" stroke-width="1.23" class="goals-grid-build" style="animation-delay:340ms;animation-duration:580ms"></path><path data-goals-conversation-ring="3" d="M 150.000 2.000 L 290.756 104.265 L 236.992 269.735 L 63.008 269.735 L 9.244 104.265 Z" stroke="var(--route-goal-example-spoke)" stroke-width="3.11" class="goals-grid-rim" style="animation-delay:460ms;animation-duration:600ms"></path><path data-goals-conversation-ray="0" d="M 150.000 150.000 L 150.000 2.000" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="1" d="M 150.000 150.000 L 290.756 104.265" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="2" d="M 150.000 150.000 L 236.992 269.735" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="3" d="M 150.000 150.000 L 63.008 269.735" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="4" d="M 150.000 150.000 L 9.244 104.265" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path></g><g><g data-goals-conversation-stems="true" class="fill-none stroke-[var(--route-goal-example-spoke)]" stroke-width="1.23" opacity="0.68"><path data-goals-conversation-stem="0" d="M 150.000 150.000 L 150.000 -17.092"></path><path data-goals-conversation-stem="1" d="M 150.000 150.000 L 308.914 98.366"></path><path data-goals-conversation-stem="2" d="M 150.000 150.000 L 248.214 285.180"></path><path data-goals-conversation-stem="3" d="M 150.000 150.000 L 51.786 285.180"></path><path data-goals-conversation-stem="4" d="M 150.000 150.000 L -8.914 98.366"></path></g><g data-goals-conversation-axis-dots="true" class="fill-[var(--route-goal-example-dot)] stroke-none"><circle data-goals-conversation-axis-dot="0" cx="150" cy="-17.092000000000013" r="2.542"></circle><circle data-goals-conversation-axis-dot="1" cx="308.9139354207898" cy="98.36573237590129" r="2.542"></circle><circle data-goals-conversation-axis-dot="2" cx="248.21421337605392" cy="285.18026762409875" r="2.542"></circle><circle data-goals-conversation-axis-dot="3" cx="51.785786623946095" cy="285.18026762409875" r="2.542"></circle><circle data-goals-conversation-axis-dot="4" cx="-8.913935420789812" cy="98.3657323759013" r="2.542"></circle></g></g><path data-goals-conversation-ring-burn="mid" d="M 150.000 51.333 L 243.838 119.510 L 207.995 229.823 L 92.005 229.823 L 56.162 119.510 Z" class="fill-none stroke-[var(--route-goal-example-ring)] [mix-blend-mode:var(--route-goal-example-grid-blend)]" stroke-width="1.23"></path><g data-goals-conversation-example-shape="true"><path data-goals-conversation-example-series-fill="asks" d="M 150.000 24.200 L 234.454 122.559 L 210.895 233.814 L 106.504 209.867 L 107.773 136.280 Z" class="goals-example-ink" style="fill:var
1(--route-goal-example-asks-fill);stroke:none;animation-delay:300ms;animation-duration:780ms"></path><path data-goals-conversation-example-series="asks" d="M 150.000 24.200 L 234.454 122.559 L 210.895 233.814 L 106.504 209.867 L 107.773 136.280 Z" class="goals-example-ink" style="stroke:var(--route-goal-example-asks);fill:none;animation-delay:300ms;animation-duration:780ms" stroke-width="1.23" stroke-linejoin="round"></path><path data-goals-conversation-example-series-fill="standing" d="M 150.000 98.200 L 227.416 124.846 L 184.797 197.894 L 97.805 221.841 L 114.811 138.566 Z" class="goals-example-ink" style="fill:var(--route-goal-example-standing-fill);stroke:none;animation-delay:460ms;animation-duration:780ms"></path><path data-goals-conversation-example-series="standing" d="M 150.000 98.200 L 227.416 124.846 L 184.797 197.894 L 97.805 221.841 L 114.811 138.566 Z" class="goals-example-ink" style="stroke:var(--route-goal-example-standing);fill:none;animation-delay:460ms;animation-duration:780ms" stroke-width="1.23" stroke-linejoin="round"></path></g><path data-goals-conversation-ring-burn="inner" d="M 150.000 100.667 L 196.919 134.755 L 178.997 189.912 L 121.003 189.912 L 103.081 134.755 Z" class="fill-none stroke-[var(--route-goal-example-ring)] [mix-blend-mode:var(--route-goal-example-grid-blend)]" stroke-width="1.23"></path></svg><div data-goals-conversation-example="true" class="pointer-events-none absolute inset-0" aria-hidden="true"><span data-goals-conversation-example-axis="Long run" data-goals-conversation-example-side="above" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + 0.0000% * var(--goals-chart-shrink, 1));top:-3.5551282051282094%;transform:translate(-50%, calc(-100% - 8px));width:max-content;max-width:42%;animation-delay:1250ms;animation-duration:750ms">Long run</span><span data-goals-conversation-example-axis="Days per week" data-goals-conversation-example-side="right" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-left goals-example-word" style="left:calc(calc(50% + 38.0599% * var(--goals-chart-shrink, 1)) + 8px);right:calc(var(--goals-side-reach, 24px) * -1);top:33.45055524868631%;transform:translateY(-50%);animation-delay:1380ms;animation-duration:750ms"><span class="block">Days </span><span class="block">per week</span></span><span data-goals-conversation-example-axis="Weekly volume" data-goals-conversation-example-side="below" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + 23.5223% * var(--goals-chart-shrink, 1));top:93.3270088538778%;transform:translate(-50%, 8px);width:max-content;max-width:42%;animation-delay:1510ms;animation-duration:750ms">Weekly volume</span><span data-goals-conversation-example-axis="Cross-training" data-goals-conversation-example-side="below" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + -23.5223% * var(--goals-chart-shrink, 1));top:93.3270088538778%;transform:translate(-50%, 8px);width:max-content;max-width:42%;animation-delay:1640ms;animation-duration:750ms">Cross-training</span><span data-goals-conversation-example-axis="Elevation" data-goals-conversation-example-side="left" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-right goals-example-word" style="left:calc(var(--goals-side-reach, 24px) * -1);right:calc(100% - calc(50% + -38.0599% * var(--goals-chart-shrink, 1)) + 8px);top:33.450555248686314%;transform:translateY(-50%);animation-delay:1770ms;animation-duration:750ms">Elevation</span></div></div><ul data-goals-conversation-legend="true" class="mt-[calc(3rem+var(--goals-label-overflow,0px))] flex flex-wrap items-center justify-center gap-x-[15.07px] gap-y-2 lg:gap-x-[21.64px] "><li class="flex items-center gap-[5.02px] lg:gap-[7.21px]" data-goals-legend-key="standing"><span aria-hidden="true" class="h-[5.65px] w-[5.65px] shrink-0 lg:h-[8.12px] lg:w-[8.12px]" style="background-color:var(--route-goal-example-legend-standing)"></span><span class="text-[10.93px] font-medium leading-[11.62px] lg:text-[11px] lg:leading-4 lg:font-bold" style="color:var(--route-goal-example-legend-standing-word, var(--route-goal-example-legend-standing))">Where you are</span></li><li class="flex items-center gap-[5.02px] lg:gap-[7.21px]" data-goals-legend-key="asks"><span aria-hidden="true" class="h-[5.65px] w-[5.65px] shrink-0 lg:h-[8.12px] lg:w-[8.12px]" style="background-color:var(--route-goal-example-legend-asks)"></span><span class="text-[10.93px] font-medium leading-[11.62px] lg:text-[11px] lg:leading-4 lg:font-bold" style="color:var(--route-goal-example-legend-asks)">What the goal asks</span></li></ul></div></div></div><div aria-hidden="true" class="max-lg:grow-[2] lg:hidden"></div><div class="flex w-full flex-col lg:mt-12"><button type="button" data-goals-build-action="sheet" data-goals-build="true" class="flex h-[50px] w-full cursor-pointer items-center justify-center rounded-full bg-[var(--route-goal-cta-bg)] px-8 text-[16px] font-semibold leading-[21px] text-[var(--route-goal-cta-fg)] lg:px-6 transition hover:bg-[var(--route-goal-cta-bg-hover)] active:bg-[var(--route-goal-cta-bg-hover)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--route-brand-mark)] lg:w-auto lg:min-w-[171px] lg:self-start">Talk to your coach</button><p data-goals-cta-note="true" class="mt-1 text-center text-[8px] font-semibold leading-[14px] text-[var(--route-goal-muted)] [mix-blend-mode:var(--route-goal-ink-over-art)] lg:mt-4 lg:text-[11px] lg:font-normal lg:text-start">No prep needed. Just start talking.</p></div></div></div><div data-goals-consent="true" class="mt-3 flex flex-col items-center gap-0.5 text-center text-[7px] font-normal leading-[11px] [mix-blend-mode:var(--route-goal-ink-over-art)] tracking-[0.11
17px] text-[var(--route-goal-legal-ink)] lg:mt-[138px] lg:w-[435px] lg:max-w-[calc(100%+143px)] lg:items-start lg:gap-1 lg:text-start lg:text-[11px] lg:font-medium lg:leading-[13px]"><p class="leading-[15px] lg:leading-[15px]">By setting a goal, you agree to our <a href="/terms" target="_blank" rel="noopener noreferrer" class="font-semibold text-[var(--route-goal-legal-link)] underline [text-underline-position:from-font] hover:text-[var(--route-fg)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--route-muted)]">Terms</a> and <a href="/privacy-policy" target="_blank" rel="noopener noreferrer" class="font-semibold text-[var(--route-goal-legal-link)] underline [text-underline-position:from-font] hover:text-[var(--route-fg)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--route-muted)]">Privacy Policy</a>.</p><p class="max-w-[435px]">Imperfect Goals are generated automatically and may be inaccurate. Make sure your goal and its timeline fit your body and your life before committing.</p></div><div aria-hidden="true" class="max-lg:grow lg:hidden"></div></div><div class="hidden lg:relative lg:flex lg:w-[548px] lg:justify-end lg:pt-[112px] lg:pb-[49px]"><div data-goals-picture-panel="true" class="relative flex h-full max-h-[695px] w-full max-w-[548px] flex-col rounded-[16px] bg-[var(--route-goal-example-panel)]"><p data-goals-example-tag="true" aria-hidden="true" class="absolute left-[34px] top-[36px] flex h-[35px] items-center rounded-[8px] bg-[var(--route-goal-example-tag)] px-4 text-[12px] font-semibold leading-none text-[var(--route-goal-example-axis)]">What your goal will look like</p><div data-goals-example-text="true" class="absolute left-[61.5px] top-[99px] w-[375px]"><p data-goals-example-eyebrow="true" class="text-[11px] font-semibold uppercase leading-none tracking-[0.1em] text-[var(--route-goal-example-ink-asks)]">Half marathon · March 15</p><p data-goals-example-title="true" class="mt-4 text-[24px] leading-[28px] text-[var(--route-goal-headline)]" style="font-family:var(--font-rink);font-weight:500">Enjoy my first half marathon</p><p data-goals-example-line="true" class="mt-4 text-[14px] font-medium leading-[19.44px] text-[var(--route-goal-lede)]">Four months out, built on the 5K you already run without thinking about it.</p></div><div data-goals-entry-picture="panel" class="absolute left-1/2 top-[278px] w-full max-w-[383.83px] -translate-x-1/2"><div class="[--goals-side-reach:24px] lg:[--goals-side-reach:44px] "><div class="relative w-full"><svg data-goals-conversation-picture="true" viewBox="-6 -6 312 312" role="img" aria-label="What your goal will look like" class="mx-auto block overflow-visible" style="width:calc(74.724% * var(--goals-chart-shrink, 1))"><g data-goals-conversation-grid="true" class="fill-none" stroke-width="1.23"><path data-goals-conversation-ring="1" d="M 150.000 100.667 L 196.919 134.755 L 178.997 189.912 L 121.003 189.912 L 103.081 134.755 Z" stroke="var(--route-goal-example-ring)" stroke-width="1.23" class="goals-grid-build" style="animation-delay:220ms;animation-duration:560ms"></path><path data-goals-conversation-ring="2" d="M 150.000 51.333 L 243.838 119.510 L 207.995 229.823 L 92.005 229.823 L 56.162 119.510 Z" stroke="var(--route-goal-example-ring)" stroke-width="1.23" class="goals-grid-build" style="animation-delay:340ms;animation-duration:580ms"></path><path data-goals-conversation-ring="3" d="M 150.000 2.000 L 290.756 104.265 L 236.992 269.735 L 63.008 269.735 L 9.244 104.265 Z" stroke="var(--route-goal-example-spoke)" stroke-width="3.11" class="goals-grid-rim" style="animation-delay:460ms;animation-duration:600ms"></path><path data-goals-conversation-ray="0" d="M 150.000 150.000 L 150.000 2.000" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="1" d="M 150.000 150.000 L 290.756 104.265" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="2" d="M 150.000 150.000 L 236.992 269.735" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="3" d="M 150.000 150.000 L 63.008 269.735" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path><path data-goals-conversation-ray="4" d="M 150.000 150.000 L 9.244 104.265" stroke="var(--route-goal-example-ring)" class="goals-grid-build" style="animation-delay:100ms;animation-duration:550ms"></path></g><g><g data-goals-conversation-stems="true" class="fill-none stroke-[var(--route-goal-example-spoke)]" stroke-width="1.23" opacity="0.68">
1<path data-goals-conversation-stem="0" d="M 150.000 150.000 L 150.000 -17.092"></path><path data-goals-conversation-stem="1" d="M 150.000 150.000 L 308.914 98.366"></path><path data-goals-conversation-stem="2" d="M 150.000 150.000 L 248.214 285.180"></path><path data-goals-conversation-stem="3" d="M 150.000 150.000 L 51.786 285.180"></path><path data-goals-conversation-stem="4" d="M 150.000 150.000 L -8.914 98.366"></path></g><g data-goals-conversation-axis-dots="true" class="fill-[var(--route-goal-example-dot)] stroke-none"><circle data-goals-conversation-axis-dot="0" cx="150" cy="-17.092000000000013" r="2.542"></circle><circle data-goals-conversation-axis-dot="1" cx="308.9139354207898" cy="98.36573237590129" r="2.542"></circle><circle data-goals-conversation-axis-dot="2" cx="248.21421337605392" cy="285.18026762409875" r="2.542"></circle><circle data-goals-conversation-axis-dot="3" cx="51.785786623946095" cy="285.18026762409875" r="2.542"></circle><circle data-goals-conversation-axis-dot="4" cx="-8.913935420789812" cy="98.3657323759013" r="2.542"></circle></g></g><path data-goals-conversation-ring-burn="mid" d="M 150.000 51.333 L 243.838 119.510 L 207.995 229.823 L 92.005 229.823 L 56.162 119.510 Z" class="fill-none stroke-[var(--route-goal-example-ring)] [mix-blend-mode:var(--route-goal-example-grid-blend)]" stroke-width="1.23"></path><g data-goals-conversation-example-shape="true"><path data-goals-conversation-example-series-fill="asks" d="M 150.000 24.200 L 234.454 122.559 L 210.895 233.814 L 106.504 209.867 L 107.773 136.280 Z" class="goals-example-ink" style="fill:var(--route-goal-example-asks-fill);stroke:none;animation-delay:300ms;animation-duration:780ms"></path><path data-goals-conversation-example-series="asks" d="M 150.000 24.200 L 234.454 122.559 L 210.895 233.814 L 106.504 209.867 L 107.773 136.280 Z" class="goals-example-ink" style="stroke:var(--route-goal-example-asks);fill:none;animation-delay:300ms;animation-duration:780ms" stroke-width="1.23" stroke-linejoin="round"></path><path data-goals-conversation-example-series-fill="standing" d="M 150.000 98.200 L 227.416 124.846 L 184.797 197.894 L 97.805 221.841 L 114.811 138.566 Z" class="goals-example-ink" style="fill:var(--route-goal-example-standing-fill);stroke:none;animation-delay:460ms;animation-duration:780ms"></path><path data-goals-conversation-example-series="standing" d="M 150.000 98.200 L 227.416 124.846 L 184.797 197.894 L 97.805 221.841 L 114.811 138.566 Z" class="goals-example-ink" style="stroke:var(--route-goal-example-standing);fill:none;animation-delay:460ms;animation-duration:780ms" stroke-width="1.23" stroke-linejoin="round"></path></g><path data-goals-conversation-ring-burn="inner" d="M 150.000 100.667 L 196.919 134.755 L 178.997 189.912 L 121.003 189.912 L 103.081 134.755 Z" class="fill-none stroke-[var(--route-goal-example-ring)] [mix-blend-mode:var(--route-goal-example-grid-blend)]" stroke-width="1.23"></path></svg><div data-goals-conversation-example="true" class="pointer-events-none absolute inset-0" aria-hidden="true"><span data-goals-conversation-example-axis="Long run" data-goals-conversation-example-side="above" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + 0.0000% * var(--goals-chart-shrink, 1));top:-3.5551282051282094%;transform:translate(-50%, calc(-100% - 8px));width:max-content;max-width:42%;animation-delay:1250ms;animation-duration:750ms">Long run</span><span data-goals-conversation-example-axis="Days per week" data-goals-conversation-example-side="right" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-left goals-example-word" style="left:calc(calc(50% + 38.0599% * var(--goals-chart-shrink, 1)) + 8px);right:calc(var(--goals-side-reach, 24px) * -1);top:33.45055524868631%;transform:translateY(-50%);animation-delay:1380ms;animation-duration:750ms"><span class="block">Days </span><span class="block">per week</span></span><span data-goals-conversation-example-axis="Weekly volume" data-goals-conversation-example-side="below" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + 23.5223% * var(--goals-chart-shrink, 1));top:93.3270088538778%;transform:translate(-50%, 8px);width:max-content;max-width:42%;animation-delay:1510ms;animation-duration:750ms">Weekly volume</span><span data-goals-conversation-example-axis="Cross-training" data-goals-conversation-example-side="below" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-center goals-example-word" style="left:calc(50% + -23.5223% * var(--goals-chart-shrink, 1));top:93.3270088538778%;transform:translate(-50%, 8px);width:max-content;max-width:42%;animation-delay:1640ms;animation-duration:750ms">Cross-training</span><span data-goals-conversation-example-axis="Elevation" data-goals-conversation-example-side="left" class="absolute break-words text-[8.75px] font-semibold leading-[10.59px] text-[var(--route-goal-example-axis)] lg:text-[11px] lg:leading-[13.8px] text-right goals-example-word" style="left:calc(var(--goals-side-reach, 24px) * -1);right:calc(100% - calc(50% + -38.0599% * var(--goals-chart-shrink, 1)) + 8px);top:33.450555248686314%;transform:translateY(-50%);animation-delay:1770ms;animation-duration:750ms">Elevation</span></div></div><ul data-goals-conversation-legend="true" class="mt-[calc(3rem+var(--goals-label-overflow,0px))] flex flex-wrap items-center justify-center gap-x-[15.07px] gap-y-2 lg:gap-x-[21.64px] "><li class="flex items-center gap-[5.02px] lg:gap-[7.21px]" data-goals-legend-key="standing"><span aria-hidden="true" class="h-[5.65px] w-[5.65px] shrink-0 lg:h-[8.12px] lg:w-[8.12px]" style="background-color:var(--route-goal-example-legend-standing)"></span><span class="text-[10.93px] font-medium leading-[11.62px] lg:text-[11px] lg:leading-4 lg:font-bold" style="color:var(--route-goal-example-legend-standing-word, var(--route-goal-example-legend-standing))">Where you are</span></li><li class="flex items-center gap-[5.02px] lg:gap-[7.21px]" data-goals-legend-key="asks"><span aria-hidden="true" class="h-[5.65px] w-[5.65px] shrink-0 lg:h-[8.12px] lg:w-[8.12px]" style="background-color:var(--route-goal-example-legend-asks)"></span><span class="text-[10.93px] font-medium leading-[11.62px] lg:text-[11px] lg:leading-4 lg:font-bold" style="color:var(--route-goal-example-legend-asks)">What the goal asks</span></li></ul></div></div></div><div data-goals-landing-theme-switch="true" class="absolute end-0 top-[4.25rem] z-30 flex"><button type="button" role="switch" aria-checked="false" aria-label="Dark mode" title="Dark mode" data-goals-theme-switch="true" class="pointer-events-auto relative h-[1.1875rem] w-[2.375rem] shrink-0 cursor-pointer rounded-full bg-[var(--route-goal-switch-track)] shadow-[inset_0_0_0_var(--route-goal-switch-edge-width)_var(--route-goal-switch-edge)] focu
1s-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--route-brand-mark)]"></button></div></div></div></div></div></section></div></div></main></div><!--$?--><template id="B:1"></template><!--/$-->
1<script>requestAnimationFrame(function(){$RT=performance.now()});</script>
1<script src="/_next/static/chunks/webpack-f1fc9f4676940660.js" id="_R_" async=""></script>
1<div hidden id="S:1"></div>
1<script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
2$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:1","S:1")</script>
2<title>Imperfect Goals</title><meta name="description" content="Talk through the goal you&#x27;re working toward."/><link rel="manifest" href="/favicon_io/site.webmanifest"/><meta name="robots" content="noindex, nofollow"/><meta name="facebook-domain-verification" content="tm5avlf1hwxhay9vgpvssvjkaulg99"/><meta property="og:title" content="Imperfect Goals"/><meta property="og:description" content="Talk through the goal you&#x27;re working toward."/><meta property="og:url" content="https://imperfect.co/goals"/><meta property="og:site_name" content="Imperfect"/><meta property="og:image" content="https://imperfect.co/og-goals.png"/><meta property="og:image:alt" content="Imperfect Goals"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Imperfect Goals"/><meta name="twitter:description" content="Talk through the goal you&#x27;re working toward."/><meta name="twitter:image" content="https://imperfect.co/og-goals.png"/><link rel="shortcut icon" href="/favicon_io/favicon.ico"/><link rel="icon" href="/favicon_io/favicon.ico"/><link rel="icon" href="/favicon_io/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon_io/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="icon" href="/favicon_io/android-chrome-192x192.png" sizes="192x192" type="image/png"/><link rel="icon" href="/favicon_io/android-chrome-512x512.png" sizes="512x512" type="image/png"/><link rel="apple-touch-icon" href="/favicon_io/apple-touch-icon.png"/>
2<script>document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))</script>
2<div hidden id="S:0"></div>
2<script>$RC("B:0","S:0")</script>
2<script>(self.__next_f=self.__next_f||[]).push([0])</script>
2<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[9766,[],\"\"]\n4:I[98924,[],\"\"]\n6:I[24431,[],\"OutletBoundary\"]\n8:I[15278,[],\"AsyncMetadataOutlet\"]\na:I[24431,[],\"ViewportBoundary\"]\nc:I[24431,[],\"MetadataBoundary\"]\nd:\"$Sreact.suspense\"\nf:I[54062,[\"4219\",\"static/chunks/app/global-error-205af0af1a8d8e9c.js\"],\"default\"]\n10:I[31574,[\"5600\",\"static/chunks/05f6971a-c04c4416fa72343e.js\",\"6624\",\"static/chunks/5106a963-93862554c5fc671e.js\",\"8195\",\"static/chunks/8195-ef08dbac07622eb3.js\",\"1884\",\"static/chunks/1884-d8a280610011e051.js\",\"5376\",\"static/chunks/5376-04a3d57f5f04927f.js\",\"4370\",\"static/chunks/4370-fbd0cbf04329f6b8.js\",\"5239\",\"static/chunks/5239-565d14304b7ab0c2.js\",\"26\",\"static/chunks/26-4d8d96e57b1c8a9c.js\",\"6720\",\"static/chunks/6720-eb48d369b243f30f.js\",\"5571\",\"static/chunks/5571-8293767e1b55089b.js\",\"5074\",\"static/chunks/5074-ce51be6db5908f02.js\",\"2683\",\"static/chunks/2683-d942122f9dfcba01.js\",\"3341\",\"static/chunks/app/goals/page-41bc6aee9d2bfa08.js\"],\"GoalsPageLocale\"]\n15:I[70026,[\"5600\",\"static/chunks/05f6971a-c04c4416fa72343e.js\",\"6624\",\"static/chunks/5106a963-93862554c5fc671e.js\",\"8195\",\"static/chunks/8195-ef08dbac07622eb3.js\",\"1884\",\"static/chunks/1884-d8a280610011e051.js\",\"5376\",\"static/chunks/5376-04a3d57f5f04927f.js\",\"4370\",\"static/chunks/4370-fbd0cbf04329f6b8.js\",\"5239\",\"static/chunks/5239-565d14304b7ab0c2.js\",\"26\",\"static/chunks/26-4d8d96e57b1c8a9c.js\",\"6720\",\"static/chunks/6720-eb48d369b243f30f.js\",\"5571\",\"static/chunks/5571-8293767e1b55089b.js\",\"5074\",\"static/chunks/5074-ce51be6db5908f02.js\",\"2683\",\"static/chunks/2683-d942122f9dfcba01.js\",\"3341\",\"static/chunks/app/goals/page-41bc6aee9d2bfa08.js\"],\"PRE_PAINT_SCRIPT\"]\n16:I[73204,[\"5600\",\"static/chunks/05f6971a-c04c4416fa72343e.js\",\"6624\",\"static/chunks/5106a963-93862554c5fc671e.js\",\"8195\",\"static/chunks/8195-ef08dbac07622eb3.js\",\"1884\",\"static/chunks/1884-d8a280610011e051.js\",\"5376\",\"static/chunks/5376-04a3d57f5f04927f.js\",\"4370\",\"static/chunks/4370-fbd0cbf04329f6b8.js\",\"5239\",\"static/chunks/5239-565d14304b7ab0c2.js\",\"26\",\"static/chunks/26-4d8d96e57b1c8a9c.js\",\"6720\",\"static/c"])</script>
2<script>self.__next_f.push([1,"hunks/6720-eb48d369b243f30f.js\",\"5571\",\"static/chunks/5571-8293767e1b55089b.js\",\"5074\",\"static/chunks/5074-ce51be6db5908f02.js\",\"2683\",\"static/chunks/2683-d942122f9dfcba01.js\",\"3341\",\"static/chunks/app/goals/page-41bc6aee9d2bfa08.js\"],\"GoalsExperience\"]\n17:I[80622,[],\"IconMark\"]\n:HL[\"/_next/static/media/e4af272ccee01ff0-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/7e7d96b1e6991756.css\",\"style\"]\n:HL[\"/_next/static/css/47b536edde8bfd1c.css\",\"style\"]\n:HL[\"/_next/static/css/8b4af9a25f1adf6a.css\",\"style\"]\n"])</script>
2<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"gjWsNvwpYQDWmSP0yF3tL\",\"p\":\"\",\"c\":[\"\",\"goals\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"goals\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7e7d96b1e6991756.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/47b536edde8bfd1c.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[\"goals\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/8b4af9a25f1adf6a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L6\",null,{\"children\":[\"$L7\",[\"$\",\"$L8\",null,{\"promise\":\"$@9\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]],[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$d\",null,{\"fallback\":null,\"children\":\"$Le\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"s\":false,\"S\":false}\n"])</script>
2<script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en-US\",\"dir\":\"ltr\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"__className_f367f3 antialiased overflow-x-hidden bg-white text-black\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]\n"])</script>
2<script>self.__next_f.push([1,"5:[\"$\",\"$L10\",null,{\"initialLocale\":\"en-US\",\"initialMessages\":{\"nav\":{\"home_aria\":\"Imperfect home\",\"select_language_aria\":\"Select language\",\"routes\":\"Routes\",\"imperfect\":\"Imperfect\",\"how_it_works\":\"How it works\",\"blog\":\"Blog\",\"download_app\":\"Download App\",\"set_goal\":\"Set a goal\"},\"share_aria\":\"Share this event\",\"badge\":{\"sold_out\":\"Sold out\",\"registration_closed\":\"Registration closed\"},\"about\":{\"title\":\"About\"},\"why\":{\"title\":\"Why this race\"},\"like\":{\"fmt\":\"If you like \u003cem\u003e{examples}\u003c/em\u003e, you'll like this one.\"},\"pack\":{\"title\":\"Pack this\"},\"know\":{\"title\":\"What you should know\"},\"researched_from\":{\"fmt\":\"Based on {count, plural, one {# source} other {# sources}}\"},\"register\":{\"open_fmt\":\"Register on {host}\",\"closed_label\":\"Visit the official site\"},\"data_disclaimer\":\"The information shown here is based on the most recent listing we could find, and may change. Always confirm details on the event's official site before registering.\",\"cta\":{\"weeks_plan_fmt\":\"{weeks}-week plan, built around your data\",\"get_plan\":\"Get my plan in the app\"},\"not_this_one\":{\"title\":\"Not this one?\",\"placeholder\":\"Find what you're looking for, any sport, any month\"},\"step\":{\"fmt\":\"Step {n}\"},\"pick_distance\":{\"title\":\"Pick your distance\",\"subtitle\":\"Everything below adapts to your choice\",\"show_all\":\"Show all\"},\"where\":{\"title\":\"Where it happens\"},\"tile\":{\"start\":\"Start\",\"start_time\":\"Start time\",\"entry_fee\":\"Entry fee\",\"weather\":\"Weather\"},\"promo\":{\"title\":\"How about we do this one together?\",\"subtitle\":\"A preview of your plan. The real one lives in the Imperfect app.\",\"first_event\":\"Our first event\",\"predicted_finish\":\"Predicted finish\",\"on_pace\":\"On pace\",\"ready_fmt\":\"{pct}% ready\"},\"readiness\":{\"title\":\"Your readiness\",\"training_plan\":\"Training plan\",\"weeks_suffix\":\"wks\",\"level\":\"Level\",\"level_value\":\"Mid\",\"sleep_score\":\"Sleep score\",\"sleep_suffix\":\"/100\"},\"aid_stations\":{\"title\":\"Aid stations\",\"mile_fmt\":\"Mile {n}\",\"station_fmt\":\"Station {n}\"},\"top_finishers\":{\"title\":\"Top finishers\",\"men\":\"Men's\",\"women\":\"Women's\"},\"sidebar\":{\"date\":\"Date\",\"time\":\"Time\",\"location\":\"Location\",\"train_for_fmt\":\"Train for {event} with Imperfect\",\"weeks_built_fmt\":\"Your {weeks}-week plan, built around your data\"},\"lang\":{\"translated_by_ai\":\"Machine-translated · English when a translation is missing\"},\"sport\":{\"cycling_road\":\"Road cycling\",\"cycling_gravel\":\"Gravel cycling\",\"cycling_mtb\":\"Mountain biking\",\"running_road\":\"Road running\",\"running_trail\":\"Trail running\",\"road_running\":\"Road running\",\"trail_running\":\"Trail running\",\"swimming\":\"Swimming\",\"triathlon\":\"Triathlon\"},\"start_time_suffix_fmt\":\"{time} start\",\"route\":{\"share_aria\":\"Share this route\",\"share_copied\":\"Link copied\",\"share_failed\":\"Couldn't share\",\"request_label\":\"The request\",\"elevation\":\"Elevation\",\"elevation_summary\":\"Elevation profile from {min} to {max} over {distance}\",\"scrub_aria\":\"Scrub the elevation profile to locate a point on the map\",\"scrub_idle\":\"Drag along the profile to find that spot on the map\",\"scrub_expand_chart\":\"Show elevation chart\",\"scrub_collapse_chart\":\"Hide elevation chart\",\"alternatives_title\":\"Other routes we considered\",\"alternatives_current\":\"This route\",\"download_gpx\":\"Download GPX\",\"coach_pitch\":\"Train toward your next goal\",\"coach_cta\":\"Get Imperfect\",\"group_getting_there\":\"Getting there\",\"group_take_it\":\"Take it with you\",\"send_garmin\":\"Send to Garmin Connect\",\"directions_start\":\"Directions to start\",\"nav_get_app\":\"Download App\",\"stat_distance\":\"Distance\",\"stat_duration\":\"Duration\",\"stat_gain\":\"Gain\",\"stat_trail\":\"Trail\",\"summary_gain\":\"{value} gain\",\"summary_loss\":\"{value} loss\",\"summary_trail\":\"{value} trail\",\"theme_aria\":\"Theme\",\"theme_light\":\"Light\",\"theme_dark\":\"Dark\",\"theme_system\":\"System\",\"theme_dark_mode\":\"Dar
2k mode\",\"units_aria\":\"Units\",\"metadata_title\":\"{title} · Imperfect Routes\",\"garmin_metadata_title\":\"Send to Garmin Connect · Imperfect Routes\",\"map_expand\":\"Expand map\",\"map_collapse\":\"Close map\",\"map_view_3d\":\"Switch to 3D view\",\"map_view_2d\":\"Switch to 2D view\",\"map_rotate_left\":\"Rotate left\",\"map_rotate_right\":\"Rotate right\",\"map_follow_heading\":\"Follow my heading\",\"map_north_up\":\"Reset the map to north\",\"maplibre_attribution_toggle\":\"Toggle attribution\",\"maplibre_attribution_feedback\":\"Map feedback\",\"maplibre_fullscreen_enter\":\"Enter fullscreen\",\"maplibre_fullscreen_exit\":\"Exit fullscreen\",\"maplibre_geolocate_find\":\"Find my location\",\"maplibre_geolocate_unavailable\":\"Location not available\",\"maplibre_logo_title\":\"MapLibre logo\",\"maplibre_map_title\":\"Map\",\"maplibre_marker_title\":\"Map marker\",\"maplibre_nav_reset_bearing\":\"Drag to rotate map, click to reset north\",\"maplibre_nav_zoom_in\":\"Zoom in\",\"maplibre_nav_zoom_out\":\"Zoom out\",\"maplibre_popup_close\":\"Close popup\",\"maplibre_scale_feet\":\"ft\",\"maplibre_scale_meters\":\"m\",\"maplibre_scale_kilometers\":\"km\",\"maplibre_scale_miles\":\"mi\",\"maplibre_scale_nautical_miles\":\"nm\",\"maplibre_globe_enable\":\"Enable globe\",\"maplibre_globe_disable\":\"Disable globe\",\"maplibre_terrain_enable\":\"Enable terrain\",\"maplibre_terrain_disable\":\"Disable terrain\",\"maplibre_cooperative_windows\":\"Use Ctrl + scroll to zoom the map\",\"maplibre_cooperative_mac\":\"Use ⌘ + scroll to zoom the map\",\"maplibre_cooperative_mobile\":\"Use two fingers to move the map\",\"ai_safety_notice\":\"Imperfect routes are generated automatically and can be wrong. Double-check distance, terrain, closures, and safety before you head out.\",\"cached_notice\":\"Showing a saved copy of this route\",\"cached_notice_dated\":\"Showing a saved copy from {date}\",\"offline_preparing\":\"Preparing for offline…\",\"offline_saved\":\"Available offline\",\"offline_available_until\":\"until {date}\",\"offline_error\":\"Couldn't finish saving offline.\",\"offline_retry\":\"Try again\",\"offline_aria_saved\":\"This route is available offline\",\"not_found_eyebrow\":\"Route not found\",\"not_found_title\":\"This route isn't here\",\"not_found_body\":\"The route you're looking for may have expired or never existed. Message Imperfect on WhatsApp and we'll plan a fresh one for you.\",\"not_found_cta\":\"Message Imperfect on WhatsApp\",\"not_found_hint\":\"Tell us where you want to go. We'll send back a route.\",\"not_found_home\":\"Back to Imperfect\",\"garmin_title\":\"Send this route to Garmin Connect™\",\"garmin_subtitle\":\"Sign in with Garmin Connect, and we'll add this route as a Course. From there, send it to your watch.\",\"garmin_access_title\":\"What happens when you connect\",\"garmin_access_create\":\"We add this route as a Course in your Garmin Connect account.\",\"garmin_access_password\":\"You sign in on Garmin Connect. We never see your password.\",\"garmin_access_disconnect\":\"Disconnect anytime from your Garmin Connect account settings.\",\"garmin_history_title\":\"Routes tuned to your training\",\"garmin_history_body\":\"Grant training-history access on the Garmin Connect screen, and Imperfect learns where and how you actually run: your terrain, distances, and climbs. The routes it recommends keep getting better.\",\"garmin_history_why\":\"Why we ask\",\"garmin_history_why_body\":\"Imperfect matches routes to your fitness and recent training, not just a map. The more of your history it can see, the sharper that match.\",\"garmin_consent\":\"By connecting, you agree to Imperfect's \u003cterms\u003eTerms\u003c/terms\u003e and \u003cprivacy\u003ePrivacy Policy\u003c/privacy\u003e.\",\"garmin_connect_cta\":\"Continue with Garmin Connect\",\"garmin_connecting\":\"Connecting you to Garmin Connect…\",\"garmin_interstitial_gpx\":\"Prefer a file? Download the GPX\",\"garmin_success_title\":\"Added to your Garmin Connect™ Courses\",\"garmin_success_body\":\"It's in your Garmin Connect Courses. Open it and send it to your watch.\",\"garmin_already_title\":\"This route is already in your Garmin Connect™ Courses\",\"garmin_already_body\":\"You sent this one before. Here it is again in your Garmin Connect Courses.\",\"garmin_poll_title\":\"Finis
2hing up…\",\"garmin_poll_body\":\"We're adding your route to Garmin Connect. This only takes a moment.\",\"garmin_open\":\"Open in Garmin Connect\",\"garmin_redirect_in\":\"Opening Garmin Connect in {seconds}s…\",\"garmin_redirect_stay\":\"Stay on this page\",\"garmin_error_title\":\"We couldn't send this route\",\"garmin_error_body\":\"Something went wrong on our side. Try again in a moment, or download the GPX instead.\",\"garmin_cancelled_title\":\"Sign-in canceled\",\"garmin_cancelled_body\":\"No problem. You can try again, or grab the GPX file instead.\",\"garmin_missing_import_title\":\"Garmin Connect™ permission needed\",\"garmin_missing_import_body\":\"Imperfect doesn't have access to your Garmin Connect Courses yet. Reconnect and allow Courses, or download the GPX.\",\"garmin_collision_title\":\"That Garmin Connect™ account is linked elsewhere\",\"garmin_collision_body\":\"This Garmin Connect account is already connected to another Imperfect profile. Download the GPX to load it manually.\",\"garmin_rate_title\":\"Too many tries\",\"garmin_rate_body\":\"Give it about {seconds} seconds, then try again.\",\"garmin_expired_title\":\"This link expired\",\"garmin_expired_body\":\"Head back to the route to start again, or download the GPX.\",\"garmin_notfound_title\":\"Route not found\",\"garmin_notfound_body\":\"This route may have expired or never existed.\",\"garmin_retry_cta\":\"Try again\",\"garmin_gpx_fallback\":\"Or download the GPX file\",\"garmin_back_route\":\"Back to the route\",\"garmin_back_home\":\"Back to Imperfect\",\"duration_approx\":\"≈ {value}\"},\"routes\":{\"milestone_searching_nearby\":\"Searching nearby trails\",\"clarify_inline_placeholder\":\"Reply to continue\",\"clarify_reply_label\":\"One more detail\",\"notice_cannot_inline\":\"I couldn't build a route for that. Try adjusting the distance or area.\",\"notice_error_inline\":\"Something went wrong building that route. Try again.\",\"notice_offline_inline\":\"You're offline. Reconnect and try again.\",\"notice_boundary_inline\":\"That didn't make it to us. What you wrote is still here, ready to send.\",\"boundary_retry\":\"Try again\",\"map_view_3d\":\"Switch to 3D view\",\"map_view_2d\":\"Switch to 2D view\",\"map_expand\":\"Expand map\",\"map_collapse\":\"Close map\",\"map_static_alt\":\"Map of your routes\",\"map_static_notice\":\"This browser shows a still map\",\"view_route\":\"View route\",\"page_title\":\"Plan a route\",\"meta_description\":\"Describe your route.\",\"eyebrow\":\"Imperfect Routes\",\"headline\":\"Describe your Imperfect route\",\"subhead\":\"Start by telling us where to begin. Then add the distance, the elevation, anything you want us to consider. We'll shape the rest.\",\"prompt_label\":\"Describe your route\",\"prompt_placeholder\":\"A hilly 15K loop from the Marin Headlands, back to the start\",\"prompt_hint\":\"Distance, terrain, loop or out-and-back, however you'd say it.\",\"use_location\":\"Share my location\",\"locating\":\"Finding you…\",\"location_ready\":\"Location shared\",\"location_stop\":\"Stop using my location\",\"location_change\":\"Update\",\"submit\":\"Plan my route\",\"submit_busy\":\"Planning…\",\"need_prompt\":\"Tell me what kind of route you want first.\",\"need_location\":\"Share your location so I can plan from where you are.\",\"shared_unavailable\":\"This shared route search is no longer available. Start a new one below.\",\"location_denied_title\":\"Location access is off\",\"location_denied_body\":\"Imperfect Routes plans from where you are. Turn on location for this site in your browser, then try again.\",\"location_unavailable_title\":\"Couldn't get your location\",\"location_unavailable_body\":\"Your device didn't return a location. Check that location services are on, then try again.\",\"location_insecure_title\":\"Location needs a secure connection\",\"location_insecure_body\":\"Open this page over https (or localhost) so your browser can share your location.\",\"location_timeout_title\":\"Location timed out\",\"location_timeout_body\":\"That took a while. Try again. It's usually quicker the second time.\",\"location_retry\":\"Try again\",\"location_type_start_hint\":\"Or just type your starting point instead, like \\\"the Ferry Building in San Francisco.\\\"\",\"location_not_shared\":\"Location not shared\",\"location_denied_no_worries\":\"No worries! Just tell me a spot near you that you know 
2well: a café, a park, a landmark, anything I can find on a map.\",\"location_denied_reenable\":\"Location is blocked for this site, so your browser won't ask again. Re-enable it from the location icon in the address bar, or just type a landmark instead.\",\"progress_title\":\"Planning your route\",\"milestone_locating\":\"Finding {place}\",\"milestone_searching_named\":\"Searching for {query}\",\"milestone_provider_fanout\":\"Checking {count} map sources\",\"milestone_candidates_generated\":\"Plotting {generated} routes\",\"milestone_deduplicated\":\"Narrowing to {unique} routes\",\"milestone_selecting\":\"Choosing your best {chosen}\",\"milestone_working\":\"Working on it\",\"elapsed\":\"{seconds} seconds\",\"cancel\":\"Cancel\",\"options_title\":\"Routes near you\",\"option_badge\":\"Option {label}\",\"option_select\":\"Choose this route\",\"option_selecting\":\"Setting up…\",\"option_aria_select\":\"Choose {name}\",\"preview_alt\":\"Map preview of {name}\",\"ready_title\":\"Your route is ready\",\"open_route\":\"Open route page\",\"make_longer\":\"Adjust this route\",\"iterate_placeholder\":\"Tweak it: longer, hillier, somewhere else…\",\"iterate_submit\":\"Update route\",\"publishing\":\"Saving your route…\",\"published_title\":\"Your route is saved\",\"view_published\":\"Open your route\",\"clarify_title\":\"A couple of quick questions\",\"clarify_placeholder\":\"Add anything that helps…\",\"clarify_submit\":\"Send answers\",\"cannot_title\":\"I couldn't plan a route here\",\"cannot_retry\":\"Try describing it differently\",\"error_title\":\"Something went wrong\",\"error_retry\":\"Try again\",\"offline_title\":\"You're offline\",\"offline_body\":\"Reconnect to plan a new route. Your recent routes are still here.\",\"recent_title\":\"Recent routes\",\"recent_empty\":\"Routes you plan will show up here.\",\"recent_continue\":\"Continue\",\"recent_open\":\"Open\",\"recent_published\":\"Saved\",\"ai_notice\":\"Imperfect Routes are generated automatically and may be inaccurate. Check distance, terrain, road closures, and safety before setting out.\",\"start_over\":\"Start over\",\"new_route\":\"New route\",\"refine_placeholder\":\"Adjust your route if you'd like.\",\"refine_submit\":\"Refine\",\"history_title\":\"How we planned this\",\"answer_more\":\"Show more\",\"answer_less\":\"Show less\",\"opener_reading\":\"Reading your request\",\"opener_pin\":\"Pinpointing your start\",\"opener_named\":\"Looking up that route\",\"opener_region\":\"Scoping the area\",\"opener_none\":\"Mapping the possibilities\",\"finalizing\":\"Writing up your routes\",\"still_working\":\"Good routes take a moment. Still working on yours.\",\"nav_new\":\"New route\",\"nav_empty\":\"Your routes will show up here.\",\"nav_terms\":\"Terms\",\"nav_privacy\":\"Privacy\",\"nav_open\":\"Open menu\",\"nav_close\":\"Close menu\",\"nav_clear\":\"Clear input\",\"nav_collapse\":\"Collapse sidebar\",\"nav_expand\":\"Expand sidebar\",\"nav_clear_all\":\"Clear all\",\"nav_delete\":\"Delete\",\"nav_your_routes\":\"Your routes\",\"nav_search_placeholder\":\"Search routes…\",\"nav_group_today\":\"TODAY\",\"nav_group_last_7_days\":\"LAST 7 DAYS\",\"nav_group_earlier\":\"EARLIER\",\"nav_no_results\":\"No routes match your search.\",\"cta_pitch\":\"Train for your next goal\",\"cta_download\":\"Get Imperfect\",\"terms_consent\":\"By planning a route, you agree to our \u003cterms\u003eTerms\u003c/terms\u003e and \u003cprivacy\u003ePrivacy Policy\u003c/privacy\u003e.\",\"stat_trail_inline\":\"trail\",\"composer_placeholder\":\"Write your own route…\",\"illustration_destination_freedom_title\":\"Reach anywhere you want\",\"illustration_destination_freedom_body\":\"Start at my location and take me somewhere new across town.\",\"illustration_gentle_terrain_care_title\":\"Routes that respect your body\",\"illustration_gentle_terrain_care_body\":\"I'm coming back from an injury. Keep it flat and easy on my joints.\",\"illustration_steep_ascent_training_title\":\"Find the climbs\",\"illustration_steep_ascent_training_body\":\"Start at my location and take me up the biggest climb nearby.\",\"illustration_loop_limited_time_title\":\"Made for the time you have\",\"illustration_loop_limited_time_body\":\"I've got 40 minutes: a loop from my location, back to where I started.\",\"illustration_river_coast_title\":\"Follow the water\",\"illustration_river_coast_body\":\"A flat route from my location along the water and back.\",\"illustration_panorama_lookout_title\":\"Chase the best views\",\"illustration_panorama_lookout_body\":\"Start at my location and finish at the best viewpoint nearby.\",\"illustration_safety_night_title\":\"Stay on safe, well-lit streets\",\"illustration_safety_night_body\":\"A well-lit loop from my location I can do after dark.\",\"illustration_group_social_title\":\"Bring the whole crew\",\"illustration_group_social_body\":\"A route for a group of us, starting and finishing at the same spot.\"},\"goals\":{\"meta_description\":\"Talk through the goal you're working toward.\",\"nav_open\":\"Open menu\",\"nav_close\":\"Close menu\",\"nav_collapse\":\"Collapse sidebar\",\"nav_expand\":\"Expand sidebar\",\"nav_new\":\"New goal\",\"nav_empty\":\"Your goals will show up here.\",\"nav_ongoing\":\"Ongoing\",\"prompt_label\":\"Write your goal\",\"prompt_placeholder\":\"Write your own goal…\",\"send\":\"Send\",\"stop\":\"Stop\",\"start_over\":\"Start over\",\"view_goal_cta\":\"Set my goal\",\"conversation_title\":\"Your goal\",\"live_placeholder_title\":\"Your goal, in your words\",\"live_placeholder_line\":\"It will take shape here as we talk.\",\"auto_open\":\"Your goal page opens in {seconds}\",\"keep_talking\":\"Keep talking to your coach\",\"review_goal\":\"Review this goal\",\"arc_today\":\"Today · {date}\",\"arc_checkpoint\":\"{when} · {name}\",\"sidebar_heading\":\"Your goals\",\"sidebar_band_range\":\"{start} to {end}\",\"sidebar_item_renews\":\"Renews weekly\",\"composer_streaming_placeholder\":\"Jump in anytime…\",\"composer_reply_placeholder\":\"Reply to Imperfect…\",\"composer_settled_placeholder\":\"Adjust your goal if you'd like.\",\"error_unavailable\":\"Goal setting isn't available right now. Try again in a bit.\",\"error_offline\":\"I can't reach your coach. Check your connection and try again.\",\"error_turn_failed\":\"That one didn't go through. Send it again and I'll pick it up.\",\"error_session\":\"Your session timed out. Reload the page and your conversation will still be here.\",\"entry\":{\"greeting\":\"Hey,\",\"greeting_named\":\"Hey, {name}
2\",\"message\":\"Let's figure out your next goal. \u003cask\u003eWhat are you working toward?\u003c/ask\u003e\",\"headline\":\"Talk through your goals with an expert coach.\",\"lede\":\"Have an 8-minute conversation to talk through your ambitions, baseline, and schedule. Imperfect weighs the trade-offs with you to land on a goal that fits your life.\",\"clear\":\"Clear\",\"consent\":\"By setting a goal, you agree to our \u003cterms\u003eTerms\u003c/terms\u003e and \u003cprivacy\u003ePrivacy Policy\u003c/privacy\u003e.\",\"ai_notice\":\"Imperfect Goals are generated automatically and may be inaccurate. Make sure your goal and its timeline fit your body and your life before committing.\",\"examples\":{\"half_marathon\":{\"title\":\"Run my first half marathon in March\",\"body\":\"I signed up for a half marathon in March and I want to get to the start line healthy.\"},\"morning_runs\":{\"title\":\"Run 3 mornings a week, before work\",\"body\":\"I keep skipping runs. I want to make 3 mornings a week actually stick.\"},\"knee_recovery\":{\"title\":\"Get back to running after my knee injury\",\"body\":\"I want to get back to running after my knee injury, without rushing it this time.\"},\"hill_15k\":{\"title\":\"Run 15K on the hill outside of town\",\"body\":\"There's a hill outside of town I've been eyeing. I want to run 15K on it.\"},\"beat_half_time\":{\"title\":\"Beat my half time from last year\",\"body\":\"Same course, one more shot. I want to beat my time, even if it's by seconds.\"}},\"build\":\"Talk to your coach\",\"cta_note\":\"No prep needed. Just start talking.\"},\"coach_working\":\"Imperfect is answering.\",\"voice_start\":\"Let's talk now\",\"voice_connecting\":\"Connecting…\",\"voice_reconnecting\":\"Lost you for a second. Bringing you back.\",\"voice_microphone\":\"Allow the microphone so I can hear you.\",\"voice_live\":\"Listening\",\"voice_hang_up\":\"End call\",\"voice_prefer_typing\":\"Prefer to type\",\"voice_error_microphone\":\"Your microphone is blocked for this page. Allow it and try the call again.\",\"voice_error_failed\":\"That call didn't connect. Try it again.\",\"voice_push_to_speak\":\"Tap to talk\",\"voice_intro_question\":\"What do you want to achieve and why?\",\"voice_intro_cta\":\"Build my goal\",\"detail\":{\"state\":{\"loading\":\"Loading your goal…\",\"error\":\"This goal didn't load.\",\"retry\":\"Try again\",\"missing\":\"We couldn't find that goal.\",\"back\":\"Back to your goals\"},\"shell\":{\"revise\":\"Revise this goal\",\"create\":\"Create your own goal\",\"invite_title\":\"Train toward your goal\",\"start_over_failed\":\"We couldn't start over. Your goal is still here.\",\"handoff_failed\":\"We couldn't make the link that carries your goal. You can still get the app.\",\"handoff_claimed\":\"Your goal is already in your app. You can open it there again any time.\",\"handoff_pending\":\"Getting your link…\",\"handoff_code_title\":\"Scan this with your phone\",\"handoff_code_body\":\"Point your camera at the code, and your goal carries over to the app.\",\"handoff_code_link_label\":\"Or open this link on your phone.\",\"handoff_code_done\":\"Done\",\"disclaimer\":\"Imperfect can get things wrong. Make sure this goal fits your body and your life.\",\"set_date\":\"Goal set {date}\"},\"story\":{\"week_heading\":\"Your week\",\"coming_from_heading\":\"Where you're coming from\",\"how_it_felt_label\":\"How it felt\",\"lesson_label\":\"The lesson\",\"life_heading\":\"Your life, built in\",\"honest_heading\":\"Keeping it honest\",\"checkpoint_label\":\"Checkpoint\",\"checkpoint_missed\":\"If this checkpoint is missed\",\"checkpoint_label_dated\":\"{label} · {when}\",\"rule_title\":\"When life gets in the way\"},\"picture\":{\"journey_heading\":\"The journey\",\"factors_heading\":\"Factor by factor\",\"chart_alt\":\"What this goal asks and where you are today, on every factor\",\"limit\":\"The limit\",\"standing\":\"Where you are\",\"asks\":\"What the goal asks\",\"already_there\":\"Already there\",\"not_yet\":\"Not measured yet\"},\"toolbar\":{\"share_aria\":\"Share your goal\",\"share_copied\":\"Link copied\",\"share_failed\":\"Couldn't share\"}},\"share\":{\"share_aria\":\"Share this goal\",\"as_of\":\"This goal as of {date}\",\"history_heading\":\"How it changed\",\"gone_title\":\"This goal isn't here\",\"gone_body\":\"The link might be wrong, or this goal is no longer shared.\",\"picture\":{\"standing\":\"Where the athlete stands\",\"chart_alt\":\"What this goal asks and where the athlete is today, on every factor\"}},\"alternatives\":{\"heading\":\"Other ways it could have gone\",\"recommended\":\"Recommended\"},\"picture_example\":{\"note\":\"What your goal will look like\",\"axes\":{\"long_run\":\"Long run\",\"days_per_week\":\"Days per week\",\"
2weekly_volume\":\"Weekly volume\",\"cross_training\":\"Cross-training\",\"altitude\":\"Elevation\",\"long_ride\":\"Long ride\",\"long_session\":\"Long session\",\"weekly_hours\":\"Weekly hours\",\"strength_work\":\"Strength work\",\"climbing\":\"Climbing\"},\"examples\":{\"running\":{\"eyebrow\":\"Half marathon · March 15\",\"title\":\"Enjoy my first half marathon\",\"line\":\"Four months out, built on the 5K you already run without thinking about it.\"},\"cycling\":{\"eyebrow\":\"Off-season · 12 weeks\",\"title\":\"Keep riding through the off-season\",\"line\":\"Three mornings a week, indoors when it's dark, starting from the one ride a week you manage now.\"},\"triathlon\":{\"eyebrow\":\"Half-distance triathlon · June 7\",\"title\":\"Run strong off the bike\",\"line\":\"Eight months out. The swim and the ride are there; the run is what fades.\"}}},\"modals\":{\"choose_input\":{\"title\":\"Let's talk it through\",\"subtitle\":\"We'll shape your goal in a quick conversation.\",\"voice_body\":\"Your browser will ask for mic access.\",\"typing_title\":\"I'd rather type\",\"typing_body\":\"Set your goal by typing.\",\"later_title\":\"Let's talk later\",\"later_body\":\"Pick a time and we'll text you a link.\"},\"start_over\":{\"title\":\"Want a different goal?\",\"body\":\"The goal you have now goes away.\",\"keep\":\"Continue\"},\"talk_later\":{\"when_title\":\"When works for you?\",\"tonight\":\"Tonight\",\"tomorrow\":\"Tomorrow\",\"phone_title\":\"Where should we text you?\",\"phone_placeholder\":\"+1 (555) 123-4567\",\"phone_confirm\":\"Confirm my number\",\"phone_invalid\":\"That doesn't look like a full number. Add your country code, like +1.\",\"phone_over_budget\":\"That's all the codes we can send for now. Give it a while and try again.\",\"phone_failed\":\"That didn't go through. Try again.\",\"code_title\":\"Enter the code we texted you\",\"code_sent_to\":\"We sent a 6-digit code to {phone}.\",\"code_label\":\"The 6-digit code from the text\",\"code_resend\":\"Resend code\",\"code_confirm\":\"Confirm\",\"code_invalid\":\"That code isn't it. Check the text and try again.\",\"code_exhausted\":\"That code is used up. Resend to get a fresh one.\",\"code_expired\":\"That code expired. Resend to get a fresh one.\",\"schedule_expired\":\"That took too long. Resend to get a fresh code.\",\"schedule_failed\":\"That didn't go through. Resend to get a fresh code.\",\"done_title_tonight\":\"Talk to you tonight\",\"done_title_tomorrow\":\"Talk to you tomorrow\",\"done_body_tonight\":\"We'll text you a link this evening. Your goal will be waiting right here.\",\"done_body_tomorrow\":\"We'll text you a link tomorrow evening. Your goal will be waiting right here.\",\"done_due\":\"Around {time}.\",\"done_button\":\"Done\"}}},\"privacy\":{\"meta_title\":\"Privacy \u0026 your data | Imperfect\",\"meta_description\":\"What Imperfect's coach collects, who processes your training and health data, how it's protected, and the controls you have.\",\"eyebrow\":\"Trust \u0026 privacy\",\"title\":\"Your data, and how your coach uses it\",\"intro\":\"Imperfect is an adaptive training coach for athletes with real lives and big goals. To coach you well, it works with your training and health data. Here is exactly what we collect, how it's used to coach you, who else helps run it, and the controls you have, in plain language.\",\"updated_fmt\":\"Last reviewed {date}\",\"principles_title\":\"The short version\",\"principle_named_title\":\"Every company is named\",\"principle_named_body\":\"We list every third party that touches your data, and the ones that don't. Opaque is the worst answer to a privacy question.\",\"principle_training_title\":\"We don't train AI on your data\",\"principle_training_body\":\"Your data coaches you. It isn't used to train AI models. We improve the system with anonymized data that isn't tied back to you.\",\"principle_memory_title\":\"Your memory is yours\",\"principle_memory_body\":\"What the coach remembers about you lives in our own database, not a third-party AI service, and you can delete it.\",\"principle_control_title\":\"You're in control\",\"principle_control_body\":\"Disconnect a data source, export your data, or delete it whenever you want.\",\"collect_title\":\"What we collect\",\"collect_intro\":\"Only what helps the coach understand your training and reach you.\",\"collect_training_title\":\"Training \u0026 health data\",\"collect_training_body\":\"Workouts, routes, heart rate, sleep, body metrics, and cycle data from the apps you connect, like Garmin Connect, Apple Health, Coros, or Clue.\",\"collect_chat_title\":\"What you tell the coach\",\"collect_chat_body\":\"Your goals, how you're feeling, and the messages you send in chat.\",\"collect_account_title\":\"Account basics\",\"collect_account_body\":\"The details needed to run your account and send you your plan and updates.\",\"use_title\":\"How y
2our coach uses your data\",\"use_intro\":\"Two things happen with your data, and we keep them separate on purpose.\",\"use_inference_title\":\"Thinking \u0026 replying\",\"use_inference_body\":\"When the coach reasons or writes back, the data it needs is sent to an AI model to generate a response. The model providers don't train on your data and keep it only briefly.\",\"use_memory_title\":\"Remembering you\",\"use_memory_body\":\"Imperfect keeps a private profile of your training (your goals, your history, what's working) so the coach knows you between conversations. It lives in our own database, not a third-party AI memory service, and you can delete it.\",\"training_title\":\"Do we train AI on your data?\",\"training_body\":\"No. We don't train AI models on your personal data. We do use anonymized data to evaluate and improve the coaching system, so Imperfect keeps getting better, but that work isn't tied back to you.\",\"vendors_title\":\"Who processes your data\",\"vendors_intro\":\"Naming every company that helps run Imperfect is the honest thing to do. None of our AI providers train on your data.\",\"vendors_col_who\":\"Who\",\"vendors_col_does\":\"What they do\",\"vendors_col_data\":\"What they receive\",\"vendors_col_where\":\"Where\",\"vendors_note\":\"Current as of {date}. If this list changes, this page changes with it.\",\"vendors\":{\"anthropic\":{\"name\":\"Anthropic (Claude)\",\"does\":\"Powers most of your coach's responses\",\"data\":\"Your messages and the training context the coach needs to reply\",\"where\":\"United States\"},\"aws\":{\"name\":\"Amazon Web Services (Bedrock)\",\"does\":\"AI model hosting\",\"data\":\"The same coaching context as above\",\"where\":\"United States\"},\"google_gemini\":{\"name\":\"Google (Gemini)\",\"does\":\"Processes coach memory and route-share localization\",\"data\":\"Your feedback, derived memory text, and public route-share text\",\"where\":\"United States\"},\"openai\":{\"name\":\"OpenAI (Whisper)\",\"does\":\"Turns voice notes into text\",\"data\":\"The audio you record and its transcript, not stored after transcription\",\"where\":\"Not stored\"},\"terra\":{\"name\":\"Terra\",\"does\":\"Connects wearable and health data sources\",\"data\":\"Activity and health data from connected wearables\",\"where\":\"United States, United Kingdom \u0026 European Union\"},\"heylo\":{\"name\":\"Heylo\",\"does\":\"Group chat with your coach, in running clubs and communities\",\"data\":\"Your messages and group details\",\"where\":\"Google Cloud\"},\"firebase\":{\"name\":\"Google Firebase\",\"does\":\"Sign-in checks and push notifications\",\"data\":\"Account and device identifiers\",\"where\":\"Google Cloud\"},\"render\":{\"name\":\"Render\",\"does\":\"Runs the Imperfect app servers and database\",\"data\":\"App data, in transit and at rest\",\"where\":\"United States\"},\"cloudflare\":{\"name\":\"Cloudflare\",\"does\":\"Delivers the website and stores route-map assets\",\"data\":\"Web requests and saved route assets\",\"where\":\"Global edge network\"},\"amplitude\":{\"name\":\"Amplitude\",\"does\":\"Product analytics (which features get used)\",\"data\":\"Usage events and device info, with no health data and no session recording\",\"where\":\"United States or European Union\"},\"sentry\":{\"name\":\"Sentry\",\"does\":\"Crash and error diagnostics\",\"data\":\"Error reports, with personal details masked\",\"where\":\"United States\"},\"logfire\":{\"name\":\"Logfire\",\"does\":\"Application monitoring, so we can keep the service healthy\",\"data\":\"Technical traces that can include app context\",\"where\":\"United States\"}},\"protect_title\":\"How it's protected\",\"protect_encrypted\":\"Encrypted in transit and at rest.\",\"protect_access\":\"Access is limited to running and improving the service.\",\"protect_agreements\":\"Each provider is covered by a data-processing agreement or equivalent data-protection terms.\",\"protect_region\":\"Your profile is stored in the United States.\",\"retention_title\":\"How long we keep it\",\"retention_inference_title\":\"Model calls\",\"retention_inference_body\":\"Kept only briefly by the AI providers, and never used for training.\",\"retention_memory_title\":\"Your memory\",\"retention_memory_body\":\"Stays while your account is active, and is deleted when you ask or close it.\",\"retention_ops_title\":\"Logs \u0026 backups\",\"retention_ops_body\":\"Rotate on a limited schedule. Backups are kept up to 60 days.\",\"controls_title\":\"Your controls\",\"controls_intro\":\"Your data is yours. While we finish building these into the app, email us and we'll take care of it.\",\"controls_disconnect_title\":\"Disconnect a source\",\"controls_disconnect_body\":\"Unlink Garmin Connect, Apple Health, or any wearable at any time.\",\"controls_export_title\":\"Export your data\",\"controls_export_body\":\"Ask for a copy of the messages and information you've sent us directly. Health and activity data lives in the apps you connected, like Garmin Connect, Apple Health, Coros, or Clue, so you can export it from there.\",\"controls_delete_title\":\"Delete your data\",\"controls_delete_body\":\"Ask us to delete your profile and everything the coach remembers about you. We complete deleti
2on within 30 days.\",\"contact_title\":\"Questions?\",\"contact_body\":\"We're happy to walk anyone through how this works, whether you're an athlete, a club, or a partner.\",\"contact_cta\":\"Get in touch\",\"contact_policy\":\"Read the full Privacy Policy\",\"contact_terms\":\"Terms \u0026 Conditions\"},\"footer\":{\"main\":\"Main\",\"imperfect\":\"Imperfect\",\"how_it_works\":\"How it works\",\"sports\":\"Sports\",\"more\":\"More\",\"privacy_overview\":\"Privacy\",\"privacy\":\"Privacy Policy\",\"terms\":\"Terms of Use\"},\"privacy_policy\":{\"meta_title\":\"Privacy Policy | Imperfect\",\"meta_description\":\"How Imperfect Wellness, Inc. collects, uses, shares, and protects your personal data, and the privacy rights and choices you have.\",\"eyebrow\":\"Legal\",\"title\":\"Privacy Policy\",\"updated_fmt\":\"Last updated {date}\",\"english_title\":\"This policy is provided in English\",\"english_body\":\"English is the authoritative version of this Privacy Policy. For a plain-language summary of how Imperfect handles your data, see our privacy overview.\",\"english_cta\":\"Privacy overview\",\"toc_title\":\"On this page\",\"s1_title\":\"Introduction\",\"s2_title\":\"How we collect personal data\",\"s3_title\":\"Personal data we collect\",\"s4_title\":\"Cookies and similar technologies\",\"s5_title\":\"How we use personal data\",\"s6_title\":\"How we share personal data\",\"s7_title\":\"How you may share personal data through the services\",\"s8_title\":\"Imperfect Coach, Membership Services AI \u0026 third-party AI technology\",\"s9_title\":\"Your choices\",\"s10_title\":\"Other sites and services\",\"s11_title\":\"Data security and retention of personal data\",\"s12_title\":\"Personal data of children\",\"s13_title\":\"Changes to this Privacy Policy\",\"s14_title\":\"Contact us\",\"s15_title\":\"U.S. state-specific privacy notice\",\"s16_title\":\"Privacy notice for European residents\"},\"terms\":{\"meta_title\":\"Terms of Use | Imperfect\",\"meta_description\":\"The terms governing your access to and use of Imperfect's websites, apps, and services, including our AI coaching features.\",\"eyebrow\":\"Legal\",\"title\":\"Terms of Use\",\"updated_fmt\":\"Last updated {date}\",\"english_title\":\"These terms are provided in English\",\"english_body\":\"English is the authoritative version of these Terms of Use. A localized version may be provided for convenience, but if there is any conflict, the English version governs.\",\"toc_title\":\"On this page\",\"s1_title\":\"Privacy\",\"s2_title\":\"Eligibility\",\"s3_title\":\"User Accounts and Account Security\",\"s4_title\":\"AI Services and Limitations\",\"s5_title\":\"Your User Data\",\"s6_title\":\"Data Input\",\"s7_title\":\"Output\",\"s8_title\":\"Pricing, Availability, and Modifications\",\"s9_title\":\"Prohibited Conduct and Content\",\"s10_title\":\"Ownership; Limited License\",\"s11_title\":\"Trademarks\",\"s12_title\":\"Feedback\",\"s13_title\":\"Third-Party Services and Content\",\"s14_title\":\"Indemnification\",\"s15_title\":\"Disclaimers\",\"s16_title\":\"Health Disclaimers\",\"s17_title\":\"Limitation of Liability\",\"s18_title\":\"General Release\",\"s19_title\":\"Transfer and Processing Data\",\"s20_title\":\"Dispute Resolution; Binding Arbitration\",\"s21_title\":\"Governing Law and Venue\",\"s22_title\":\"Modifying and Terminating Our Services\",\"s23_title\":\"Severability\",\"s24_title\":\"Electronic Communications\",\"s25_title\":\"Consent to Receive Calls and Text Messages\",\"s26_title\":\"Contact Us\",\"s27_title\":\"Additional Terms Applicable to Mobile Device Apps\",\"s28_title\":\"Miscellaneous\"},\"home\":{\"meta_description\":\"An adaptive training coach for runners, cyclists, and triathletes. Your plan adapts to your sleep, your schedule, and how you're actually feeling.\",\"hero\":{\"title\":\"For athletes with real lives and epic \u003ccircled\u003egoals\u003c/circled\u003e\",\"subtitle\":\"We connect with your wearable, your health apps, and your real life to build training that makes sense today, not a plan written weeks ago.\",\"cta\":\"Download the app, free\",\"scroll\":\"Scroll to explore\",\"phones_alt\":\"The Imperfect app showing goal setup and onboarding screens\",\"title_mobile\":\"For athletes with real lives and epic goals\"},\"what\":{\"kicker\":\"01 // What is Imperfect\",\"title\":\"Training \u003caccent\u003eis evolution\u003c/accent\u003e\",\"body\":\"It's no longer about blindly following a plan. Imperfect connects with your health data whether you run, ride, swim, or climb. Through the day, you get recommendations that fit how you actually live.\",\"goals_title\":\"Your goals,\\nyour rhythm\",\"goals_body\":\"Your plan moves with you. Your energy, your schedule, your life. No need to fit into a rigid routine.\",\"body_title\":\"Your body talks.\\nWe listen\",\"body_body\":\"Some days you push. Some days you recover. We adjust so you can keep going.\",\"steps_title\":\"Every step\\ncounts\",\"steps_body\":\"Miss a day? That's part of it. Show up again.\"},\"how\":{\"kicker\":\"02 // How it works\",\"tab_context\":\"Context\",\"tab_body\":\"Your Body\",\"tab_goals\":\"Your Goals\",\"tab_progress\":\"Your Progress\",\"card_skip\":\"Skip\",\"card_done\":\"Done\",\"context_title\":\"Your life sets the pace\u003cbr\u003e\u003c/br\u003eWe follow\",\"context_body\":\"We decide in the moment, based on your day and what's going on around you.\",\"context_card_eyebrow\":\"Air quality · low\",\"context_card_title\":\"Let's move indoors\",\"context_card_meta\":\"Treadmill run · 5K\",\"body_title\":\"Your body leads\u003cbr\u003e\u003c/br\u003eWe adjust\",\"body_body\":\"Train based on how your body feels, not just what was planned.\",\"body_card_eyebrow\":\"Coming back after a cold\",\"body_card_title\":\"Take it easy today\",\"body_card_meta\":\"Light workout · 15-20 min\",\"goals_title\":\"Real goals. Real path\u003cbr\u003e\u003c/br\u003eWe get you there\",\"goals_body\":\"Miss a day, get sick, or fall behind: we adjust so you still make it.\",\"goals_card_eyebrow\":\"Plan updated\",\"goals_card_title\":\"You're still on track for your 10K\",\"goals_card_meta\":\"This week · 4 runs\",\"progress_t
2itle\":\"No burnout. No guilt\u003cbr\u003e\u003c/br\u003eJust progress\",\"progress_body\":\"Every step counts, even the ones that don't go as planned.\",\"progress_card_eyebrow\":\"Tomorrow\",\"progress_card_title\":\"What a week. You've earned this\",\"progress_card_meta\":\"Rest today · No training\",\"progress_stat_runs\":\"Runs\",\"progress_stat_distance\":\"Distance\",\"progress_stat_time\":\"Time\",\"phone_alt\":\"Phone home screen with an Imperfect coaching widget\"},\"sports\":{\"kicker\":\"03 // Sports\",\"title\":\"Built for \u003caccent\u003ehow you move\u003c/accent\u003e\",\"body\":\"From everyday training to niche disciplines. We're building with athletes and expanding with you.\",\"cycling\":\"Cycling\",\"cycling_desc\":\"Adapts to terrain, effort, and how you're feeling\",\"trail\":\"Trail Running\",\"trail_desc\":\"Accounts for elevation, fatigue, and trail conditions\",\"swimming\":\"Swimming\",\"swimming_desc\":\"Sessions adjust to your technique, endurance, and recovery\",\"photo_alt_cycling\":\"Cyclist riding a road bike\",\"photo_alt_trail\":\"Two runners on an open road\",\"photo_alt_swimming\":\"Swimmer training at sunrise\",\"chips_title\":\"Built for how you move\",\"collage_alt\":\"Collage of athletes doing extreme sports\",\"chip_downhill\":\"Downhill\",\"chip_snowboarding\":\"Snowboarding\",\"chip_bouldering\":\"Bouldering\",\"chip_mma\":\"MMA\",\"chip_snowboard_cross\":\"Snowboard cross\",\"chip_jiujitsu\":\"Jiu-Jitsu\",\"chip_surfing\":\"Surfing\",\"chip_padel\":\"Padel\",\"chip_skyrunning\":\"Skyrunning\",\"chip_aquathlon\":\"Aquathlon\"},\"faq\":{\"kicker\":\"FAQ\",\"title\":\"Your questions\",\"devices_q\":\"What devices does it work with?\",\"devices_a\":\"Imperfect works on iOS and Android, and connects with your smartwatch or wearable to personalize your training in real time.\",\"apps_q\":\"What apps and wearables can I connect?\",\"apps_a\":\"You can connect your favorite wearables and health apps to bring all your data into one place. Imperfect uses this information to adjust your training and recommendations throughout the day.\",\"different_q\":\"How is Imperfect different?\",\"different_a\":\"Imperfect doesn't follow a fixed plan. It adapts your training every day based on your body, your schedule, and your environment, so you can keep progressing without forcing it.\"}},\"app_page\":{\"meta_description\":\"Training that adapts to your body, your schedule, and your real life. For runners, cyclists, swimmers, and beyond.\",\"title\":\"Train Smarter. Across Every Sport\",\"subtitle\":\"Running, cycling, swimming, trail, CrossFit, climbing, and more. Imperfect adapts to your sport and your life\",\"qr_alt\":\"QR code to download the Imperfect app\",\"appstore_alt\":\"Download on the App Store\",\"play_alt\":\"Get it on Google Play\",\"community_title\":\"Join our Strava Community\",\"community_body\":\"Share your feedback, your ideas, your complaints. Everything helps us build the app you actually need.\",\"join_cyclist\":\"Join as a cyclist\",\"join_runner\":\"Join as a runner\",\"join_other\":\"Join for other sports\"},\"blog\":{\"title\":\"Blog\",\"meta_description\":\"Stories from the Imperfect team about training that adapts to your real life.\"},\"garmin_link\":{\"metadata_title\":\"Finish connecting Garmin Connect · Imperfect\",\"handoff_title\":\"Taking you back to Imperfect\",\"handoff_body\":\"Garmin approved the connection. We're handing it to the app to finish.\",\"opened_title\":\"Finishing in the app\",\"opened_body\":\"Imperfect is completing your Garmin connection. You can close this tab.\",\"stalled_title\":\"Open Imperfect to finish\",\"stalled_body\":\"Garmin approved the connection, but this page couldn't open the Imperfect app. Tap Open Imperfect. If nothing happens, open the app yourself and tap Connect Garmin again: Garmin's approval only works once and it doesn't last long, so the app needs a fresh one.\",\"denied_title\":\"You didn't approve the connection\",\"denied_body\":\"Nothing was linked, and nothing changed on your Garmin account. Open Imperfect and tap Connect Garmin whenever you want to try again.\",\"incomplete_title\":\"This link is missing something\",\"incomplete_body\":\"Garmin sent you back without the details we need to finish. Open Imperfect and tap Connect Garmin to start over.\",\"open_app_cta\":\"Open Imperfect\",\"get_app_cta\":\"Get the Imperfect app\",\"back_home\":\"Back to Imperfect\",\"noscript_body\":\"This page needs JavaScript to hand the connection back to the app. Open Imperfect and tap Connect Garmin to finish.\",\"retry_from_app_title\":\"Start again from Imperfect\",\"retry_from_app_body\":\"We couldn't open the Imperfect app from this page, and Garmin's approval doesn't survive the trip. Open Imperfect and tap Connect Garmin: it's faster now that Garmin remembers you.\",\"provider_error_title\":\"Garmin couldn't finish this\",\"provider_error_body\":\"Garmin sent back an error instead of the connection, so nothing was linked and nothing changed on your Garmin account. Open Imperfect and tap Connect Garmin to try again in a few minutes.\"},\"notification_share\":{\"share\":\"Share\",\"share_copied\":\"Link copied\",\"share_failed\":\"Couldn't share\",\"download\":\"Download image\",\"save_hint\":\"Press and hold the image to save it.\",\"brand_line\":\"Training that adapts to you.\",\"gone_title\":\"This image isn't here\",\"gone_body\":\"The link may have expired, or the image was removed.\"},\"terra_failure\":{\"metadata_title\":\"Connection didn't finish · Imperfect\",\"title\":\"That connection didn't go through\",\"body\":\"We couldn't finish connecting that account, so nothing was linked. Open Imperfect and try again whenever you're ready.\",\"open_app_cta\":\"Open Imperfect\",\"back_home\":\"Back to Imperfect\"}},\"pinned\":false,\"remember\":true,\"className\":\"route-theme min-h-dvh w-full bg-[var(--route-bg)] text-[var(--route-fg)] lg:bg-[var(--route-goal-ground)]\",\"children\":[\"$L11\",\"$L12\",\"$L13\",\"$L14\"]}]\n"])</script>
2<script>self.__next_f.push([1,"11:[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/rink-medium.woff2\",\"as\":\"font\",\"type\":\"font/woff2\",\"crossOrigin\":\"anonymous\"}]\n12:[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"/fonts/rink-semi-bold.woff2\",\"as\":\"font\",\"type\":\"font/woff2\",\"crossOrigin\":\"anonymous\"}]\n13:[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"$15\"}}]\n14:[\"$\",\"$L16\",null,{\"locale\":\"en-US\",\"units\":\"imperial\",\"examples\":[{\"slug\":\"hill-15k\",\"layer\":\"outcome\",\"art\":\"featured\"},{\"slug\":\"morning-runs\",\"layer\":\"process\",\"art\":\"compact\"},{\"slug\":\"beat-half-time\",\"layer\":\"performance\",\"art\":\"compact\"}],\"screen\":null,\"tape\":null,\"returned\":false,\"revisingGoalId\":null}]\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover, interactive-widget=resizes-content\"}]]\n7:null\n"])</script>
2<script>self.__next_f.push([1,"9:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Imperfect Goals\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Talk through the goal you're working toward.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/favicon_io/site.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"3\",{\"name\":\"robots\",\"content\":\"noindex, nofollow\"}],[\"$\",\"meta\",\"4\",{\"name\":\"facebook-domain-verification\",\"content\":\"tm5avlf1hwxhay9vgpvssvjkaulg99\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Imperfect Goals\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Talk through the goal you're working toward.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://imperfect.co/goals\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Imperfect\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://imperfect.co/og-goals.png\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:alt\",\"content\":\"Imperfect Goals\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"Imperfect Goals\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"Talk through the goal you're working toward.\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:image\",\"content\":\"https://imperfect.co/og-goals.png\"}],[\"$\",\"link\",\"16\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon_io/favicon.ico\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon_io/favicon.ico\"}],[\"$\",\"link\",\"18\",{\"rel\":\"icon\",\"href\":\"/favicon_io/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}],[\"$\",\"link\",\"19\",{\"rel\":\"icon\",\"href\":\"/favicon_io/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}],[\"$\",\"link\",\"20\",{\"rel\":\"icon\",\"href\":\"/favicon_io/android-chrome-192x192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon_io/android-chrome-512x512.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],[\"$\",\"link\",\"22\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon_io/apple-touch-icon.png\"}],[\"$\",\"$L17\",\"23\",{}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script>
2<script>self.__next_f.push([1,"e:\"$9:metadata\"\n"])</script>
2<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"59097e9bc8cd45f38f4a9864fe2099ab","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 2
2
3<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a472d026cb7deacc',t:'MTc5MTQzODA1MA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
3</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.