{
  "version": 3,
  "sources": ["/cdn/shop/files/tfp-cat-gym-v2.js?x=6953"],
  "sourcesContent": ["/* T - F program landing page loader (shadow DOM isolated). Generated - do not hand-edit. */\n(function(){\n  var DOC_CSS = \"@font-face{font-family:'Alta';font-weight:400;font-style:normal;font-display:swap;\\nsrc:url('https://tashafranken.com/cdn/shop/files/alta_regular-webfont.woff2') format('woff2'),\\n    url('https://tashafranken.com/cdn/shop/files/alta_regular-webfont.woff') format('woff')}\\nbody.is-locked{overflow:hidden}\\nbody.temp-page\\\\.faq-bck .page-header > *:not(.page-header__text-wrapper){display:none!important}\\nbody.temp-page\\\\.faq-bck .page-header__text-wrapper > *:not(#tfp-mount){display:none!important}\\nbody.temp-page\\\\.faq-bck .page-header,\\nbody.temp-page\\\\.faq-bck .page-header__text-wrapper,\\nbody.temp-page\\\\.faq-bck #main > section > .container{margin:0!important;padding:0!important;max-width:none!important;width:auto!important}\\nbody.temp-page\\\\.faq-bck .shopify-section--faq{display:none!important}\\n#tfp-mount{display:block}\";\n  var CSS  = \".tfp{\\n  --black:#000; --white:#fff;\\n  --paper:#fafafa; --paper-2:#f1f0ee;\\n  --line:#dfdfdf; --line-dark:rgba(255,255,255,.16);\\n  --ink:#3c3c3c; --ink-soft:#666;   \\n  --ink-invert-soft:rgba(255,255,255,.66);\\n  --green:#06402b; --gold:#ffc107;\\n\\n  --display:'Alta','Cormorant Garamond',Georgia,serif;   \\n  --serif:'Lora',Georgia,'Times New Roman',serif;        \\n  --text:'Barlow',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;\\n\\n  --max:1280px;\\n  --gutter:clamp(20px,5vw,64px);\\n  --section:clamp(72px,9vw,132px);\\n  --ease:cubic-bezier(.22,.61,.36,1);\\n}\\n.tfp *,.tfp *::before,.tfp *::after{box-sizing:border-box}\\n.tfp{-webkit-text-size-adjust:100%;scroll-behavior:smooth}\\n.tfp{\\n  margin:0;background:var(--white);color:var(--black);\\n  font-family:var(--text);font-size:17px;line-height:1.75;font-weight:400;\\n  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;\\n}\\n.tfp img{max-width:100%;display:block;height:auto}\\n.tfp a{color:inherit;text-decoration:none}\\n.tfp button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}\\n.tfp h1,.tfp h2,.tfp h3,.tfp h4{margin:0;font-weight:400}\\n.tfp p{margin:0}\\n.tfp ::selection{background:var(--black);color:var(--white)}\\n.tfp :focus-visible{outline:2px solid currentColor;outline-offset:3px}\\n.tfp .wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}\\n.tfp .section{padding-block:var(--section)}\\n.tfp \\n\\n.display{font-family:var(--display);font-weight:400;line-height:1;letter-spacing:-.014em;text-wrap:balance}\\n.tfp .h1{font-size:clamp(32px,4.6vw,64px);line-height:1.06}\\n.tfp \\n.h2{\\n  font-family:var(--serif);font-style:italic;font-weight:400;\\n  font-size:clamp(30px,3.9vw,54px);line-height:1.16;letter-spacing:-.012em;text-wrap:balance;\\n}\\n.tfp .h3{font-size:clamp(21px,2vw,27px);line-height:1.18}\\n.tfp \\n.h-sub{font-family:var(--text);font-weight:400;font-size:clamp(19px,1.9vw,26px);line-height:1.23;letter-spacing:.038em;color:var(--ink)}\\n.tfp .h-sub.lead-invert{color:var(--ink-invert-soft)}\\n.tfp \\n.step-title{font-family:var(--text);font-weight:400;font-size:clamp(21px,2.2vw,29px);line-height:1.2;text-transform:uppercase}\\n.tfp .lead{font-size:clamp(18px,1.55vw,22px);line-height:1.65;color:var(--ink)}\\n.tfp .lead-invert{color:var(--ink-invert-soft)}\\n.tfp .eyebrow{\\n  font-family:var(--text);font-size:clamp(13.5px,1.2vw,16px);font-weight:600;\\n  text-transform:uppercase;letter-spacing:.24em;line-height:1.25;color:var(--ink-soft);\\n}\\n.tfp .eyebrow-invert{color:rgba(255,255,255,.6)}\\n.tfp .eyebrow-rule{display:flex;align-items:center;gap:16px}\\n.tfp .eyebrow-rule::after{content:\\\"\\\";flex:1;height:1px;background:var(--line);max-width:120px}\\n.tfp .dark .eyebrow-rule::after{background:var(--line-dark)}\\n.tfp \\n.btn{\\n  --bg:var(--black);--fg:var(--white);--bd:var(--black);\\n  display:inline-flex;align-items:center;justify-content:center;gap:10px;\\n  background:var(--bg);color:var(--fg);border:1px solid var(--bd);\\n  font-family:var(--text);font-size:17px;font-weight:600;\\n  padding:19px 40px;border-radius:0;position:relative;overflow:hidden;\\n  transition:color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease);\\n}\\n.tfp .btn span{position:relative;z-index:1}\\n.tfp .btn::before{content:\\\"\\\";position:absolute;inset:0;background:var(--hover-bg,var(--white));transform:translateY(101%);transition:transform .45s var(--ease)}\\n.tfp .btn:hover::before{transform:translateY(0)}\\n.tfp .btn:hover{color:var(--hover-fg,var(--black))}\\n.tfp .btn:active{transform:translateY(1px)}\\n.tfp \\n.btn--light{--bg:var(--white);--fg:var(--black);--bd:var(--white);--hover-bg:var(--black);--hover-fg:var(--white)}\\n.tfp .btn--ghost-dark{--bg:transparent;--fg:var(--white);--bd:rgba(255,255,255,.42);--hover-bg:var(--white);--hover-fg:var(--black)}\\n.tfp .btn--ghost-dark:hover{border-color:var(--white)}\\n.tfp .btn--outline{--bg:transparent;--fg:var(--black);--bd:var(--black);--hover-bg:var(--black);--hover-fg:var(--white)}\\n.tfp .btn--full{width:100%}\\n.tfp .micro{font-size:14.5px;color:var(--ink-soft);line-height:1.6}\\n.tfp .micro-invert{color:rgba(255,255,255,.55)}\\n.tfp .micro .dot{opacity:.5;padding-inline:3px}\\n.tfp \\n.micro .rl{white-space:nowrap}\\n.tfp \\nh1,.tfp h2,.tfp h3,.tfp .h1,.tfp .h2,.tfp .h3,.tfp .step-title,.tfp .type-body h3,.tfp .cd-title,.tfp .stat-n{\\n  text-wrap:balance;\\n}\\n.tfp p,.tfp .hero-sub,.tfp .lead,.tfp .type-body p,.tfp .cd-lede,.tfp .member-list li,.tfp .check-list li,.tfp .faq p,.tfp .outcomes li,.tfp .rule-list li{\\n  text-wrap:pretty;\\n}\\n.tfp \\n.site-header{\\n  position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;\\n  justify-content:space-between;padding:18px var(--gutter);color:var(--white);\\n  transition:background .45s var(--ease),box-shadow .45s var(--ease),padding .45s var(--ease),color .45s var(--ease);\\n}\\n.tfp .site-header.is-stuck{background:var(--white);color:var(--black);box-shadow:0 1px 0 var(--line);padding-block:13px}\\n.tfp \\n.wordmark{font-family:var(--display);font-size:21px;letter-spacing:.16em;line-height:1;display:inline-flex;align-items:center;gap:.32em;white-space:nowrap;padding:10px 2px}\\n.tfp .wordmark .rule{width:26px;height:1px;background:currentColor;display:inline-block}\\n.tfp .header-right{display:flex;align-items:center;gap:clamp(14px,2.5vw,28px)}\\n.tfp .header-link{font-size:15px;font-weight:500;position:relative;display:inline-block;padding:10px 2px}\\n.tfp .header-link::after{content:\\\"\\\";position:absolute;left:2px;right:2px;bottom:7px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}\\n.tfp .header-link:hover::after{transform:scaleX(1)}\\n.tfp .header-cta{border:1px solid currentColor;padding:11px 22px;font-size:14.5px;font-weight:600;position:relative;overflow:hidden;transition:color .4s var(--ease)}\\n.tfp .header-cta::before{content:\\\"\\\";position:absolute;inset:0;background:currentColor;transform:translateY(101%);transition:transform .4s var(--ease)}\\n.tfp .header-cta span{position:relative;z-index:1;mix-blend-mode:difference;color:#fff}\\n.tfp .site-header.is-stuck .header-cta{background:var(--black);color:var(--white);border-color:var(--black)}\\n.tfp .site-header.is-stuck .header-cta span{mix-blend-mode:normal}\\n.tfp .header-cta:hover::before{transform:translateY(0)}\\n@media (max-width:720px){.tfp .header-link{display:none}\\n.tfp .header-cta{padding:10px 16px;font-size:13px}}\\n.tfp \\n.hero{\\n  background:var(--black);color:var(--white);position:relative;overflow:hidden;\\n  padding-top:clamp(96px,9vw,124px);padding-bottom:clamp(60px,6.5vw,88px);\\n}\\n.tfp .hero::after{content:\\\"\\\";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 78% 12%,rgba(255,255,255,.07),transparent 62%)}\\n.tfp .hero-grid{display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(32px,5vw,80px);align-items:center;position:relative;z-index:2}\\n.tfp .hero-copy{max-width:640px}\\n.tfp .hero-logo{width:clamp(210px,26vw,330px);margin:22px 0 clamp(18px,2.4vw,26px)}\\n.tfp .hero .h1{margin:0 0 22px}\\n.tfp .hero-sub{max-width:520px}\\n.tfp .hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin:34px 0 18px}\\n.tfp .hero-media{position:relative}\\n.tfp .hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;filter:grayscale(.12) contrast(1.03)}\\n.tfp .hero-badge{position:absolute;left:0;bottom:0;transform:translate(-14%,22%);background:var(--white);color:var(--black);padding:22px 26px 20px;min-width:186px;box-shadow:0 24px 60px rgba(0,0,0,.4)}\\n.tfp .hero-badge .n{font-family:var(--display);font-size:46px;line-height:.9;letter-spacing:.01em;display:block}\\n.tfp .hero-badge .l{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:var(--ink-soft);margin-top:9px;display:block}\\n@media (max-width:940px){.tfp .hero-grid{grid-template-columns:1fr;gap:36px}\\n.tfp .hero-media{max-width:640px}\\n.tfp .hero-badge{display:none}}\\n@media (max-width:760px){.tfp .hero{padding-top:84px;padding-bottom:48px}\\n.tfp .hero-logo{width:176px;margin:14px 0 16px}\\n.tfp .hero-sub{font-size:17px;line-height:1.6;letter-spacing:normal}\\n.tfp .hero-actions{margin:26px 0 14px;gap:10px}\\n.tfp .hero-actions .btn{width:100%;padding:17px 28px}\\n.tfp .hero-media{max-width:none;margin-top:4px}\\n.tfp .hero-media img{aspect-ratio:5/4;object-position:center 28%}}\\n.tfp \\n.stats{background:var(--black);color:var(--white);border-top:1px solid var(--line-dark);position:relative;z-index:2}\\n.tfp .stats-inner{display:grid;grid-template-columns:repeat(4,1fr)}\\n.tfp .stat{padding:clamp(28px,3.6vw,48px) 18px;text-align:center;border-left:1px solid var(--line-dark)}\\n.tfp .stat:first-child{border-left:0}\\n.tfp .stat .v{font-family:var(--display);font-size:clamp(25px,2.7vw,38px);line-height:1;letter-spacing:.01em;display:block}\\n.tfp .stat .k{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.22em;color:rgba(255,255,255,.55);margin-top:13px;display:block}\\n.tfp .star{width:.52em;height:.52em;fill:currentColor;display:inline-block;vertical-align:.06em;margin-right:.2em}\\n@media (max-width:760px){.tfp .stats-inner{grid-template-columns:repeat(2,1fr)}\\n.tfp .stat:nth-child(3),.tfp .stat:nth-child(4){border-top:1px solid var(--line-dark)}\\n.tfp .stat:nth-child(odd){border-left:0}}\\n.tfp \\n.press{background:var(--black);border-top:1px solid var(--line-dark);padding-block:clamp(26px,3.4vw,40px)}\\n.tfp .logo-list{display:grid;grid-template-columns:repeat(5,minmax(140px,200px));gap:24px;justify-content:center}\\n.tfp \\n.logo-list__item{display:flex;align-items:center;justify-content:center;padding:16px;min-height:74px}\\n.tfp \\n.logo-list__item img{width:200px;max-width:none;height:auto;flex:none}\\n@media (max-width:999px){.tfp .logo-list{grid-template-columns:repeat(3,minmax(120px,170px));gap:12px}\\n.tfp .logo-list__item{padding:10px}\\n.tfp .logo-list__item img{width:100%;max-width:100%;flex:1 1 auto}}\\n@media (max-width:560px){.tfp .logo-list{grid-template-columns:repeat(2,minmax(110px,150px))}}\\n.tfp \\n.inside{background:var(--paper)}\\n.tfp .inside-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,96px);align-items:start}\\n.tfp .inside-media img{width:100%;aspect-ratio:3/4;object-fit:cover}\\n.tfp .inside-body p+p{margin-top:22px}\\n.tfp .inside-body .h2{margin:20px 0 28px}\\n.tfp .rule-list{margin:42px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}\\n.tfp .rule-list li{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}\\n.tfp .rule-list .idx{font-family:var(--display);font-size:16px;color:var(--ink-soft);min-width:26px}\\n.tfp .rule-list .txt{font-size:17px;line-height:1.6}\\n@media (max-width:900px){.tfp .inside-grid{grid-template-columns:1fr}\\n.tfp .inside-media{max-width:420px}}\\n.tfp \\n.types-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:clamp(38px,5vw,64px);flex-wrap:wrap}\\n.tfp .types-head .h2{max-width:15ch}\\n.tfp .types-head p{max-width:44ch}\\n.tfp .types{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,26px)}\\n.tfp .type-card{position:relative;display:block;background:var(--white)}\\n.tfp .type-figure{position:relative;overflow:hidden;background:var(--paper-2)}\\n.tfp .type-figure img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s var(--ease);filter:grayscale(.1)}\\n.tfp .type-card:hover .type-figure img{transform:scale(1.05);filter:grayscale(0)}\\n.tfp \\n.type-figure::before{\\n  content:\\\"\\\";position:absolute;inset:0 auto auto 0;width:170px;height:150px;z-index:1;\\n  \\n  background:radial-gradient(125px 108px at 0 0,rgba(0,0,0,.46),rgba(0,0,0,0) 72%);\\n  pointer-events:none;\\n}\\n.tfp .type-num{position:absolute;top:14px;left:14px;z-index:2;color:var(--white);font-family:var(--display);font-size:14px;letter-spacing:.12em;\\n  \\n  text-shadow:0 1px 3px rgba(0,0,0,.55)}\\n.tfp .type-body{padding:22px 2px 0}\\n.tfp .type-body h3{font-family:var(--text);font-weight:500;font-size:clamp(18px,1.45vw,21px);line-height:1.25;letter-spacing:.05em;text-transform:uppercase}\\n.tfp .type-kicker{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--ink-soft);margin-top:10px;display:block}\\n.tfp .type-body p{font-size:16px;line-height:1.65;color:var(--ink);margin-top:14px}\\n@media (max-width:1000px){.tfp .types{grid-template-columns:repeat(2,1fr);gap:26px}}\\n@media (max-width:560px){.tfp .types{grid-template-columns:1fr;gap:34px}\\n.tfp .type-figure img{aspect-ratio:4/3}}\\n.tfp \\n.plan{background:var(--black);color:var(--white)}\\n.tfp .plan-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:clamp(36px,4.6vw,58px)}\\n.tfp .plan-head p{max-width:46ch}\\n.tfp .week-label{display:flex;align-items:center;gap:18px;margin:0 0 18px;font-size:12.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.5)}\\n.tfp .week-label::after{content:\\\"\\\";flex:1;height:1px;background:var(--line-dark)}\\n.tfp .week+.week{margin-top:clamp(30px,3.6vw,48px)}\\n.tfp .days{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}\\n.tfp .day{\\n  padding:20px 18px 22px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);\\n  position:relative;min-height:186px;display:flex;flex-direction:column;text-align:left;width:100%;\\n  color:inherit;transition:background .35s var(--ease);cursor:pointer;overflow:hidden;\\n}\\n.tfp .day:hover,.tfp .day:focus-visible{background:rgba(255,255,255,.06)}\\n.tfp \\n.day--outdoor{background:rgba(255,255,255,.025)}\\n.tfp .day--outdoor::before{\\n  content:\\\"\\\";position:absolute;left:0;top:0;bottom:0;width:2px;\\n  background:var(--green);opacity:.55;\\n}\\n.tfp .day--outdoor .n{color:rgba(255,255,255,.6)}\\n.tfp .day--outdoor .m{color:rgba(255,255,255,.42);letter-spacing:.08em;text-transform:uppercase;font-size:12px}\\n.tfp .day .n{font-family:var(--display);font-size:30px;line-height:1;letter-spacing:.01em;color:rgba(255,255,255,.92)}\\n.tfp .day .t{font-size:15px;line-height:1.35;font-weight:500;margin-top:auto;padding-top:18px}\\n.tfp .day .m{font-size:13px;color:rgba(255,255,255,.48);margin-top:7px}\\n.tfp \\n.day .peek{\\n  position:absolute;inset:0;padding:20px 18px;z-index:1;\\n  display:flex;flex-direction:column;justify-content:flex-end;\\n  font-size:13px;line-height:1.45;color:rgba(255,255,255,.9);\\n  background:#111;transform:translateY(101%);transition:transform .42s var(--ease);\\n  overflow:hidden;\\n}\\n.tfp .day .peek-copy{position:relative;z-index:2}\\n.tfp .day .peek-copy::before{\\n  content:attr(data-day);display:block;margin-bottom:7px;\\n  font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.62);\\n}\\n.tfp \\n.day .peek--plain{justify-content:center}\\n.tfp .day .go{\\n  position:absolute;top:18px;right:16px;width:18px;height:18px;opacity:0;z-index:2;\\n  transition:opacity .35s var(--ease),transform .35s var(--ease);transform:translateX(-4px);\\n}\\n.tfp .day .go svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.4}\\n@media (hover:hover){.tfp .day:hover .peek,.tfp .day:focus-visible .peek{transform:translateY(0)}\\n.tfp .day:hover .go,.tfp .day:focus-visible .go{opacity:.8;transform:translateX(0)}}\\n@media (hover:none){.tfp .day .go{opacity:.5;transform:none}\\n.tfp .day .peek{display:none}}\\n@media (max-width:1120px){.tfp .days{grid-template-columns:repeat(4,1fr)}}\\n@media (max-width:620px){.tfp .days{grid-template-columns:repeat(2,1fr)}\\n.tfp .day{min-height:150px;padding:16px 14px 18px}\\n.tfp .day .n{font-size:26px}\\n.tfp .day .t{font-size:13.5px;padding-top:14px}}\\n.tfp \\n.look{margin-top:clamp(44px,5vw,72px)}\\n.tfp .look-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:20px;flex-wrap:wrap}\\n.tfp .look-head .lbl{font-size:12.5px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.5)}\\n.tfp .look-head .hint{font-size:13.5px;color:rgba(255,255,255,.52)}\\n.tfp \\n\\n.look-strip{\\n  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:clamp(12px,1.4vw,20px);\\n  overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;\\n  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent;\\n  cursor:grab;\\n}\\n.tfp \\n.look-strip.is-dragging{\\n  cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;\\n  user-select:none;-webkit-user-select:none;\\n}\\n.tfp .look-strip img{-webkit-user-drag:none;user-select:none}\\n.tfp .look-strip:focus-visible{outline:2px solid var(--white);outline-offset:4px}\\n.tfp .look-strip::-webkit-scrollbar{height:4px}\\n.tfp .look-strip::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25)}\\n.tfp .look-strip figure{margin:0;scroll-snap-align:start}\\n.tfp .look-strip img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#161616}\\n.tfp .look-strip figcaption{margin-top:11px;font-size:13.5px;color:rgba(255,255,255,.62);letter-spacing:.02em}\\n@media (max-width:620px){.tfp .look-strip{grid-auto-columns:minmax(200px,1fr)}}\\n.tfp .plan-foot{margin-top:clamp(34px,4vw,52px);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}\\n.tfp \\n.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px}\\n.tfp .modal.is-open{display:flex}\\n.tfp .modal__scrim{position:absolute;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(3px);opacity:0;transition:opacity .35s var(--ease)}\\n.tfp .modal.is-open .modal__scrim{opacity:1}\\n.tfp .modal__box{\\n  position:relative;background:var(--white);color:var(--black);width:min(560px,100%);\\n  padding:clamp(30px,4vw,48px);opacity:0;transform:translateY(14px) scale(.985);\\n  transition:opacity .4s var(--ease),transform .4s var(--ease);max-height:88vh;overflow:auto;\\n}\\n.tfp .modal.is-open .modal__box{opacity:1;transform:none}\\n.tfp .modal__close{position:absolute;top:14px;right:14px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;color:var(--ink-soft)}\\n.tfp .modal__close:hover{color:var(--black)}\\n.tfp .modal__thumb{width:calc(100% + 2 * clamp(30px,4vw,48px));margin:calc(-1 * clamp(30px,4vw,48px)) 0 26px calc(-1 * clamp(30px,4vw,48px));display:block}\\n.tfp .modal__thumb img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--paper-2)}\\n.tfp .modal__week{font-size:12px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-soft)}\\n.tfp .modal__day{font-family:var(--display);font-size:clamp(44px,6vw,68px);line-height:1;letter-spacing:-.01em;margin:10px 0 4px}\\n.tfp .modal__title{font-family:var(--text);font-weight:500;font-size:clamp(19px,1.8vw,23px);line-height:1.3;letter-spacing:.03em;text-transform:uppercase;margin-top:14px}\\n.tfp .modal__meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}\\n.tfp .modal__meta span{font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);padding:7px 12px;color:var(--ink)}\\n.tfp .modal__desc{margin-top:22px;font-size:17px;line-height:1.7;color:var(--ink)}\\n.tfp .modal__cta{margin-top:30px}\\n.tfp \\n.app{background:var(--paper-2);overflow:hidden;text-align:center}\\n.tfp .app-head{max-width:760px;margin:0 auto}\\n.tfp .app-mock{max-width:940px;margin:clamp(30px,4vw,52px) auto 0}\\n.tfp .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(26px,3.4vw,56px);margin-top:clamp(46px,5vw,76px);text-align:center}\\n.tfp .step-ico{width:78px;height:78px;border-radius:50%;overflow:hidden;margin:0 auto 22px}\\n.tfp .step-ico img{width:108%;height:108%;margin:-4%;object-fit:cover;max-width:none}\\n.tfp .step p{margin-top:14px;font-size:16.5px;line-height:1.65;color:var(--ink)}\\n.tfp .badges{display:flex;gap:14px;justify-content:center;align-items:center;margin-top:clamp(36px,4vw,56px);flex-wrap:wrap;min-height:48px}\\n.tfp .badges img{height:48px;width:auto}\\n.tfp .app-plat{margin-top:22px;font-size:15px;color:#5c5c5c}\\n@media (max-width:820px){.tfp .steps{grid-template-columns:1fr;gap:40px}}\\n.tfp \\n.band{position:relative;width:100%;height:clamp(260px,36vw,480px);overflow:hidden;background:var(--paper-2)}\\n.tfp \\n.band img{\\n  position:absolute;left:0;top:-32%;width:100%;height:164%;\\n  object-fit:cover;object-position:center center;\\n  will-change:transform;\\n}\\n@media (prefers-reduced-motion:reduce){.tfp .band img{top:0;height:100%;transform:none!important}}\\n.tfp \\n.outcomes-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}\\n.tfp .outcomes-media img{width:100%;aspect-ratio:1/1;object-fit:cover}\\n.tfp .check-list{list-style:none;margin:32px 0 0;padding:0}\\n.tfp .check-list li{display:flex;gap:18px;align-items:flex-start;padding:22px 0;border-bottom:1px solid rgba(0,0,0,.12);font-size:clamp(17px,1.5vw,20px);line-height:1.45}\\n.tfp .check-list li:first-child{border-top:1px solid rgba(0,0,0,.12)}\\n.tfp .check-list svg{flex:none;margin-top:5px}\\n@media (max-width:900px){.tfp .outcomes-grid{grid-template-columns:1fr}\\n.tfp .outcomes-media{order:-1}}\\n.tfp \\n.reviews{background:var(--paper);overflow:hidden}\\n.tfp .reviews-head{text-align:center;max-width:700px;margin:0 auto clamp(38px,5vw,60px)}\\n.tfp .marquee{overflow:hidden;width:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}\\n.tfp .marquee__track{display:flex;width:max-content;animation:scroll-left 68s linear infinite}\\n.tfp .marquee:hover .marquee__track{animation-play-state:paused}\\n.tfp \\n.marquee.is-paused .marquee__track{animation-play-state:paused}\\n.tfp .marquee-controls{display:flex;justify-content:center;margin-top:clamp(26px,3vw,38px)}\\n.tfp .marquee-pause{\\n  display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);\\n  padding:11px 20px;font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;\\n  color:var(--ink);background:var(--white);transition:border-color .3s var(--ease),color .3s var(--ease);\\n}\\n.tfp .marquee-pause:hover{border-color:var(--black);color:var(--black)}\\n.tfp .marquee-pause svg{width:11px;height:11px;fill:currentColor}\\n@keyframes scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}\\n.tfp .review{\\n  width:390px;flex:none;margin-right:30px;background:var(--white);\\n  padding:74px 30px 30px;position:relative;display:flex;flex-direction:column;\\n}\\n.tfp .review::before{\\n  content:\\\"\\u201c\\\";position:absolute;top:12px;left:26px;font-family:var(--display);\\n  font-size:78px;line-height:1;color:var(--green);opacity:.28;\\n}\\n.tfp .review__stars{display:flex;gap:3px;margin-bottom:16px}\\n.tfp .review__stars svg{width:15px;height:15px;fill:var(--green)}\\n.tfp .review__text{font-size:16px;line-height:1.62;color:var(--ink);overflow-wrap:anywhere}\\n.tfp \\n\\n.review__by{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:22px;border-top:1px solid var(--line)}\\n.tfp .review__text{padding-bottom:24px}\\n.tfp .review__by img{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none}\\n.tfp .review__by .nm{display:block;font-size:17px;font-weight:600;line-height:1.3}\\n.tfp \\n.review__by .rl{display:block;margin-top:3px;font-size:13px;color:var(--ink-soft);line-height:1.3}\\n@media (max-width:620px){.tfp .review{width:min(86vw,340px);margin-right:16px;padding:64px 22px 26px}\\n.tfp .review__text{font-size:15.5px;line-height:1.6}\\n.tfp .marquee{\\n    -webkit-mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);\\n    mask-image:linear-gradient(90deg,transparent,#000 11%,#000 89%,transparent);\\n  }}\\n.tfp \\n.member{background:var(--black);color:var(--white)}\\n.tfp .member-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center}\\n.tfp .member-list{list-style:none;margin:30px 0 0;padding:0}\\n.tfp .member-list li{display:flex;gap:14px;padding:13px 0;font-size:17px;color:rgba(255,255,255,.84);align-items:flex-start}\\n.tfp .member-list svg{flex:none;margin-top:6px;opacity:.85}\\n.tfp .plans{display:grid;gap:14px}\\n.tfp .plan-card{\\n  position:relative;display:block;border:1px solid var(--line-dark);padding:clamp(22px,2.2vw,30px);\\n  cursor:pointer;transition:border-color .35s var(--ease),background .35s var(--ease);\\n}\\n.tfp .plan-card:hover{border-color:rgba(255,255,255,.5)}\\n.tfp \\n.plan-card input{position:absolute;width:1px;height:1px;opacity:0;margin:0}\\n.tfp .plan-card:has(input:checked){border-color:var(--white);background:rgba(255,255,255,.06)}\\n.tfp .plan-card:has(input:focus-visible){outline:2px solid var(--white);outline-offset:3px}\\n.tfp .plan-top{display:flex;align-items:center;gap:14px}\\n.tfp .plan-dot{width:20px;height:20px;border:1px solid rgba(255,255,255,.5);border-radius:50%;flex:none;position:relative;transition:border-color .3s var(--ease)}\\n.tfp .plan-dot::after{content:\\\"\\\";position:absolute;inset:4px;border-radius:50%;background:var(--white);transform:scale(0);transition:transform .3s var(--ease)}\\n.tfp .plan-card:has(input:checked) .plan-dot{border-color:var(--white)}\\n.tfp .plan-card:has(input:checked) .plan-dot::after{transform:scale(1)}\\n.tfp .plan-name{font-size:12.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.6)}\\n.tfp .plan-tag{margin-left:auto;background:var(--white);color:var(--black);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:6px 12px}\\n.tfp .plan-price{display:flex;align-items:baseline;gap:10px;margin-top:14px;flex-wrap:wrap;padding-left:34px}\\n.tfp .plan-price .p{font-family:var(--display);font-size:clamp(32px,3vw,42px);line-height:1;letter-spacing:.01em}\\n.tfp .plan-price .per{font-size:15.5px;color:rgba(255,255,255,.58)}\\n.tfp .plan-price .was{font-size:15.5px;color:rgba(255,255,255,.52);text-decoration:line-through}\\n.tfp \\n.plan-note{font-size:14.5px;color:rgba(255,255,255,.58);margin-top:10px;padding-left:34px}\\n.tfp .member-cta{margin-top:24px}\\n@media (max-width:900px){.tfp .member-grid{grid-template-columns:1fr}}\\n.tfp \\n.faq-grid{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(32px,6vw,90px);align-items:start}\\n.tfp .faq-sticky{position:sticky;top:104px}\\n.tfp .faq{border-top:1px solid var(--line)}\\n.tfp .faq details{border-bottom:1px solid var(--line)}\\n.tfp .faq summary{\\n  list-style:none;cursor:pointer;padding:26px 48px 26px 0;position:relative;\\n  font-family:var(--text);font-weight:500;font-size:clamp(18px,1.5vw,21px);line-height:1.4;\\n  transition:opacity .3s var(--ease);\\n}\\n.tfp .faq summary::-webkit-details-marker{display:none}\\n.tfp .faq summary:hover{opacity:.6}\\n.tfp .faq summary::after,.tfp .faq summary::before{content:\\\"\\\";position:absolute;right:6px;top:50%;background:var(--black);transition:transform .4s var(--ease),opacity .3s var(--ease)}\\n.tfp .faq summary::before{width:15px;height:1px;transform:translateY(-50%)}\\n.tfp .faq summary::after{width:1px;height:15px;right:13px;transform:translateY(-50%)}\\n.tfp .faq details[open] summary::after{transform:translateY(-50%) rotate(90deg);opacity:0}\\n.tfp .faq .answer{padding:0 60px 30px 0;font-size:17px;line-height:1.75;color:var(--ink);max-width:62ch}\\n@media (max-width:880px){.tfp .faq-grid{grid-template-columns:1fr}\\n.tfp .faq-sticky{position:static}}\\n.tfp \\n.final{background:var(--black);color:var(--white);text-align:center;position:relative;overflow:hidden}\\n.tfp .final::before{content:\\\"\\\";position:absolute;inset:0;background:radial-gradient(80% 60% at 50% 0%,rgba(255,255,255,.09),transparent 70%)}\\n.tfp .final .wrap{position:relative;z-index:2}\\n.tfp .final .h2{max-width:17ch;margin:24px auto 22px}\\n.tfp .final p{max-width:52ch;margin-inline:auto}\\n.tfp .final .btn{margin-top:34px}\\n.tfp \\n.site-footer{background:var(--black);color:var(--white);border-top:1px solid var(--line-dark);padding-block:48px}\\n.tfp .footer-inner{display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap}\\n.tfp .footer-links{display:flex;gap:12px 26px;flex-wrap:wrap;font-size:14px;color:rgba(255,255,255,.62)}\\n.tfp .footer-links a{display:inline-block;padding:9px 2px}\\n.tfp .footer-links a:hover{color:var(--white)}\\n.tfp .footer-copy{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.58)}\\n.tfp \\n.sticky-cta{\\n  position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--white);border-top:1px solid var(--line);\\n  padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));display:none;align-items:center;gap:14px;\\n  justify-content:space-between;transform:translateY(110%);transition:transform .5s var(--ease);\\n}\\n.tfp .sticky-cta.is-on{transform:translateY(0)}\\n.tfp .sticky-cta .lbl{font-size:13px;line-height:1.35;color:var(--ink)}\\n.tfp .sticky-cta .lbl b{display:block;color:var(--black);font-weight:600;font-size:14.5px}\\n.tfp .sticky-cta .btn{padding:14px 22px;font-size:14.5px;white-space:nowrap}\\n@media (max-width:760px){.tfp .sticky-cta{display:flex}}\\n.tfp \\n.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}\\n.tfp .rv.in{opacity:1;transform:none}\\n@media (prefers-reduced-motion:reduce){.tfp *{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}\\n.tfp .rv{opacity:1;transform:none}\\n.tfp .marquee__track{animation:none!important}}\\n.tfp \\n.cd{list-style:none;margin:56px 0 0;padding:0;position:relative}\\n.tfp .cd::before{\\n  content:\\\"\\\";position:absolute;left:0;top:10px;bottom:10px;width:1px;\\n  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.24) 12%,rgba(255,255,255,.24) 88%,rgba(255,255,255,.06));\\n}\\n.tfp .cd-phase{display:grid;grid-template-columns:210px 1fr;gap:40px;padding:44px 0 46px 34px;border-top:1px solid var(--line-dark)}\\n.tfp .cd-phase:first-child{border-top:0;padding-top:6px}\\n.tfp .cd-mark{position:relative}\\n.tfp .cd-mark::before{\\n  content:\\\"\\\";position:absolute;left:-38px;top:14px;width:9px;height:9px;border-radius:50%;\\n  background:#fff;box-shadow:0 0 0 5px #000;\\n}\\n.tfp .cd-range{display:block;font-family:var(--display);font-size:46px;line-height:1;letter-spacing:.01em;color:rgba(255,255,255,.94)}\\n.tfp .cd-lbl{display:block;margin-top:10px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.52)}\\n.tfp \\n.cd-step{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.52);margin:0 0 12px}\\n.tfp \\n.cd-h3{font-family:var(--display);font-size:31px;line-height:1.12;margin:0;color:#fff}\\n.tfp .cd-lede{margin:16px 0 0;max-width:60ch;font-size:16.5px;line-height:1.62;color:rgba(255,255,255,.7)}\\n.tfp .cd-tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:30px;border-top:1px solid var(--line-dark)}\\n.tfp .cd-track{padding:22px 26px 4px 0;border-right:1px solid var(--line-dark)}\\n.tfp .cd-track:last-child{border-right:0;padding-right:0}\\n.tfp .cd-track:not(:first-child){padding-left:26px}\\n.tfp .cd-k{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.9);margin-bottom:10px}\\n.tfp .cd-track p{margin:0;font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.58)}\\n@media (max-width:1120px){.tfp .cd-phase{grid-template-columns:1fr;gap:22px;padding-left:30px}\\n.tfp .cd-range{font-size:38px}\\n.tfp .cd-mark::before{left:-34px;top:10px}}\\n@media (max-width:900px){.tfp .cd-tracks{grid-template-columns:1fr;border-top:0}\\n.tfp .cd-track{border-right:0;border-top:1px solid var(--line-dark);padding:18px 0 4px!important}}\\n.tfp \\n\\n\\n.plan-tag{font-size:12px}\\n.tfp .day .peek-copy::before{font-size:12px;letter-spacing:.2em}\\n.tfp .cd-step,.tfp .cd-lbl{font-size:12px}\\n.tfp .cd-k{font-size:12px}\\n.tfp \\n.day .peek{padding:16px 13px}\\n.tfp .day .peek-copy{\\n  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;\\n  overflow:hidden;\\n}\\n@media (max-width:1120px){.tfp .day .peek{padding:20px 18px}\\n.tfp .day .peek-copy{-webkit-line-clamp:7}}\\n@media (min-width:941px) and (max-height:960px){.tfp .hero{padding-top:clamp(56px,min(6vw,8vh),88px);padding-bottom:clamp(36px,min(4vw,5vh),56px)}\\n.tfp .hero-logo{margin:16px 0 18px}\\n.tfp .hero .h1{margin-bottom:16px}\\n.tfp .hero-actions{margin:26px 0 14px}\\n.tfp .hero-media img{aspect-ratio:1/1}}\\n@media (min-width:941px) and (max-height:830px){.tfp .hero{padding-top:52px;padding-bottom:32px}\\n.tfp .hero-logo{width:clamp(168px,16vw,220px);margin:8px 0 10px}\\n.tfp .hero .h1{margin-bottom:12px}\\n.tfp .hero-sub{font-size:16.5px;line-height:1.55}\\n.tfp .hero-actions{margin:16px 0 8px}\\n.tfp .hero-actions .btn{padding:14px 24px}}\\n.tfp \\n\\n.plan .wrap{max-width:min(1660px, max(1280px, 92vw))}\\n@media (min-width:1121px){.tfp .plan .wrap{padding-inline:clamp(24px,3vw,48px)}}\\n@media (max-height:620px){.tfp .sticky-cta{display:flex}}\\n@media (max-height:620px){.tfp .sticky-cta{padding-block:9px}\\n.tfp .sticky-cta .lbl{font-size:12.5px}\\n.tfp .sticky-cta .lbl b{font-size:13.5px}\\n.tfp .sticky-cta .btn{padding:11px 18px;font-size:13.5px}}\\n.tfp \\n.days{position:relative}\\n.tfp .days::after{\\n  content:\\\"\\\";position:absolute;inset:0;pointer-events:none;\\n  border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);\\n}\\n.tfp \\n.plan--c6 .days{grid-template-columns:repeat(6,1fr)}\\n@media (max-width:1120px){.tfp .plan--c6 .days{grid-template-columns:repeat(4,1fr)}}\\n@media (max-width:860px){.tfp .plan--c6 .days{grid-template-columns:repeat(3,1fr)}}\\n@media (max-width:620px){.tfp .plan--c6 .days{grid-template-columns:repeat(2,1fr)}}\\n.tfp \\n.logo-list__item{padding:16px 0}\\n.tfp .logo-list__item img{width:min(200px,100%);max-width:100%}\\n.tfp \\n.week-more{\\n  display:none;width:100%;margin-top:-1px;padding:17px 20px;cursor:pointer;\\n  background:transparent;color:rgba(255,255,255,.86);\\n  border:1px solid var(--line-dark);border-top:0;\\n  font-family:inherit;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;\\n  transition:background .3s var(--ease),color .3s var(--ease);\\n}\\n.tfp .week-more:hover,.tfp .week-more:focus-visible{background:rgba(255,255,255,.06);color:#fff}\\n.tfp .week-more__shut{display:none}\\n.tfp .week.is-clamped .week-more__open{display:inline}\\n.tfp .week:not(.is-clamped) .week-more__open{display:none}\\n.tfp .week:not(.is-clamped) .week-more__shut{display:inline}\\n@media (max-width:1120px){.tfp .week--big .week-more{display:block}\\n.tfp .week--big.is-clamped .days > .day:nth-child(n+7){display:none}}\\n@media (max-height:620px){.tfp .hero{padding-top:48px;padding-bottom:30px}\\n.tfp .hero-logo{display:none}\\n.tfp .hero .h1{margin-bottom:12px}\\n.tfp .hero-sub{font-size:16px;line-height:1.5}\\n.tfp .hero-actions{margin:18px 0 8px;gap:10px}\\n.tfp .hero-actions .btn{padding:13px 22px;font-size:14.5px}\\n.tfp .hero-badge{display:none}\\n.tfp .hero-grid{gap:24px;align-items:start}}\\n@media (max-height:620px) and (max-width:940px){.tfp .hero-media{display:none}\\n.tfp \\n  .hero-copy{max-width:none}}\\n@media (max-height:470px){.tfp .hero{padding-top:34px;padding-bottom:22px}\\n.tfp .hero .h1{font-size:clamp(26px,4.6vw,36px);margin-bottom:10px}\\n.tfp \\n  .hero-sub{-webkit-line-clamp:2;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;line-height:1.45}\\n.tfp .hero-actions{margin:14px 0 6px}}\\n@media (max-width:360px){.tfp .sticky-cta{gap:10px}\\n.tfp .sticky-cta .btn{padding:13px 16px;font-size:13.5px}\\n.tfp .sticky-cta .lbl-sub{display:none}\\n.tfp .sticky-cta .lbl b{font-size:14px}}\\n.tfp \\n.cd-more{\\n  display:inline-flex;align-items:center;gap:10px;margin-top:28px;\\n  padding:15px 24px;cursor:pointer;background:transparent;color:rgba(255,255,255,.9);\\n  border:1px solid rgba(255,255,255,.34);\\n  font-family:inherit;font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;\\n  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);\\n}\\n.tfp .cd-more::after{\\n  content:\\\"\\\";width:9px;height:9px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;\\n  transform:translateY(-2px) rotate(45deg);transition:transform .35s var(--ease);\\n}\\n.tfp .cd-more:hover,.tfp .cd-more:focus-visible{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.6);color:#fff}\\n.tfp .cd-phase.is-open .cd-more::after{transform:translateY(2px) rotate(-135deg)}\\n.tfp .cd-more__shut{display:none}\\n.tfp .cd-phase.is-open .cd-more__open{display:none}\\n.tfp .cd-phase.is-open .cd-more__shut{display:inline}\\n.tfp .cd-sched{display:none;margin-top:26px}\\n.tfp .cd-phase.is-open .cd-sched{display:block}\\n.tfp \\n.cd-sched .days{grid-template-columns:repeat(6,1fr)}\\n@media (max-width:1240px){.tfp .cd-sched .days{grid-template-columns:repeat(4,1fr)}}\\n@media (max-width:900px){.tfp .cd-sched .days{grid-template-columns:repeat(3,1fr)}}\\n@media (max-width:620px){.tfp .cd-sched .days{grid-template-columns:repeat(2,1fr)}}\\n.tfp \\n.cd-sched--c4 .days{grid-template-columns:repeat(4,1fr)}\\n@media (max-width:900px){.tfp .cd-sched--c4 .days{grid-template-columns:repeat(3,1fr)}}\\n@media (max-width:620px){.tfp .cd-sched--c4 .days{grid-template-columns:repeat(2,1fr)}}\\n@media (max-width:620px){.tfp .cd-more{width:100%;justify-content:space-between}}\\n@media (max-width:620px){.tfp .days > .day:last-child:nth-child(2n+1){grid-column:span 2}}\\n@media (min-width:621px) and (max-width:860px){.tfp \\n  .plan--c6 .days > .day:last-child:nth-child(3n+1){grid-column:span 3}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(3n+2){grid-column:span 2}\\n.tfp .cd-sched .days > .day:last-child:nth-child(3n+1){grid-column:span 3}\\n.tfp .cd-sched .days > .day:last-child:nth-child(3n+2){grid-column:span 2}}\\n@media (min-width:621px) and (max-width:1120px){.tfp \\n  .days > .day:last-child:nth-child(4n+1){grid-column:span 4}\\n.tfp .days > .day:last-child:nth-child(4n+2){grid-column:span 3}\\n.tfp .days > .day:last-child:nth-child(4n+3){grid-column:span 2}}\\n@media (min-width:1121px){.tfp \\n  .days > .day:last-child:nth-child(7n+1){grid-column:span 7}\\n.tfp .days > .day:last-child:nth-child(7n+2){grid-column:span 6}\\n.tfp .days > .day:last-child:nth-child(7n+3){grid-column:span 5}\\n.tfp .days > .day:last-child:nth-child(7n+4){grid-column:span 4}\\n.tfp .days > .day:last-child:nth-child(7n+5){grid-column:span 3}\\n.tfp .days > .day:last-child:nth-child(7n+6){grid-column:span 2}}\\n@media (min-width:1121px){.tfp .plan--c6 .days > .day:last-child:nth-child(7n+1),.tfp .plan--c6 .days > .day:last-child:nth-child(7n+2),.tfp .plan--c6 .days > .day:last-child:nth-child(7n+3),.tfp .plan--c6 .days > .day:last-child:nth-child(7n+4),.tfp .plan--c6 .days > .day:last-child:nth-child(7n+5),.tfp .plan--c6 .days > .day:last-child:nth-child(7n+6),.tfp .cd-sched .days > .day:last-child{grid-column:auto}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(6n+1){grid-column:span 6}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(6n+2){grid-column:span 5}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(6n+3){grid-column:span 4}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(6n+4){grid-column:span 3}\\n.tfp .plan--c6 .days > .day:last-child:nth-child(6n+5){grid-column:span 2}}\\n@media (min-width:1241px){.tfp .cd-sched .days > .day:last-child:nth-child(6n+1){grid-column:span 6}\\n.tfp .cd-sched .days > .day:last-child:nth-child(6n+2){grid-column:span 5}\\n.tfp .cd-sched .days > .day:last-child:nth-child(6n+3){grid-column:span 4}\\n.tfp .cd-sched .days > .day:last-child:nth-child(6n+4){grid-column:span 3}\\n.tfp .cd-sched .days > .day:last-child:nth-child(6n+5){grid-column:span 2}}\\n@media (min-width:901px) and (max-width:1240px){.tfp .cd-sched .days > .day:last-child:nth-child(4n+1){grid-column:span 4}\\n.tfp .cd-sched .days > .day:last-child:nth-child(4n+2){grid-column:span 3}\\n.tfp .cd-sched .days > .day:last-child:nth-child(4n+3){grid-column:span 2}}\\n@media (min-width:1241px){.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(6n+1),.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(6n+2),.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(6n+3),.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(6n+4),.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(6n+5){grid-column:auto}}\\n@media (min-width:901px){.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(4n+1){grid-column:span 4}\\n.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(4n+2){grid-column:span 3}\\n.tfp .cd-sched.cd-sched--c4 .days > .day:last-child:nth-child(4n+3){grid-column:span 2}}\\n.tfp \\n.days > .day:last-child[style],.tfp .days > .day:last-child{align-self:stretch}\\n@media (max-width:620px){.tfp .plan-foot .btn,.tfp #outcomes .btn,.tfp .final .btn,.tfp .look .btn,.tfp .inside .btn,.tfp #class-types .btn{width:100%}\\n.tfp .plan-foot{gap:18px}\\n.tfp .plan-foot .micro{order:2}\\n.tfp .plan-foot .btn{order:1}\\n.tfp .final .btn{margin-top:26px}}\\n.tfp \\n.look{position:relative}\\n@media (max-width:900px){.tfp .look-strip{padding-right:34px;scroll-padding-right:34px}\\n.tfp .look::after{\\n    content:\\\"\\\";position:absolute;right:0;bottom:44px;width:44px;top:56px;\\n    pointer-events:none;background:linear-gradient(90deg,transparent,var(--black) 78%);\\n  }}\\n@media (max-width:620px){.tfp .days > .day--rest:last-child:nth-child(2n+1){min-height:112px}}\\n@media (min-width:621px) and (max-width:1120px){.tfp .days > .day--rest:last-child:nth-child(4n+1),.tfp .days > .day--rest:last-child:nth-child(4n+2),.tfp .days > .day--rest:last-child:nth-child(4n+3){min-height:126px}}\\n@media (max-width:560px){.tfp .logo-list{grid-template-columns:repeat(2,minmax(110px,150px));gap:14px 18px}\\n.tfp .logo-list__item:first-child{grid-column:1/-1;justify-content:center}\\n.tfp .logo-list__item:first-child img{width:min(160px,60%)}\\n.tfp .logo-list__item{min-height:60px}}\\n@media (min-width:561px) and (max-width:999px){.tfp .logo-list{grid-template-columns:repeat(4,minmax(96px,150px));gap:14px 18px}\\n.tfp .logo-list__item:first-child{grid-column:1/-1;justify-content:center}\\n.tfp .logo-list__item:first-child img{width:min(170px,42%)}}\\n.tfp{position:relative;width:100vw;margin-left:calc(50% - 50vw);text-align:left;overflow-x:clip}\\n.tfp .modal,.tfp .sticky-cta{position:fixed}\\n:host{display:block}\\n\\n@media (max-width:430px){\\n  .tfp .hero{padding-top:44px}\\n  .tfp .btn{font-size:16px;padding:18px 22px}\\n}\\n\\n/* Category pages: the programs grid.\\n\\n   The program cards carry the client's own card art with the program name burned\\n   into the image, so the art is never cropped: the shared 3/4 crop sliced every\\n   wordmark (\\\"ILATES - STRONG\\\", \\\"rength & Sca\\\"). Cards run 16:9 and the ultra-wide\\n   banners are letterboxed to it by imgix rather than cut.\\n\\n   Column count follows card count, and every layout fills the container. Capping\\n   the one-card and two-card rows at a fixed max-width left the row stopping short\\n   of the right margin while the paragraph above it ran the full width. */\\n.tfp .types--prog{grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,32px)}\\n.tfp .types--prog .type-figure img{aspect-ratio:16/9}\\n\\n/* One program: a single 360px card under a full-width heading reads as a gap,\\n   not a design. The card turns horizontal and fills the row instead. */\\n.tfp .types--prog.types--n1{grid-template-columns:minmax(0,1fr)}\\n.tfp .types--prog.types--n1 .type-card > a{\\n  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);\\n  gap:clamp(22px,3.4vw,48px);align-items:center;\\n}\\n.tfp .types--prog.types--n1 .type-body{padding-top:0}\\n\\n.tfp .types--prog.types--n2{grid-template-columns:repeat(2,minmax(0,1fr))}\\n\\n@media (max-width:1000px){\\n  .tfp .types--prog{grid-template-columns:repeat(2,1fr)}\\n}\\n@media (max-width:760px){\\n  .tfp .types--prog.types--n1 .type-card > a{grid-template-columns:1fr;gap:18px}\\n}\\n@media (max-width:560px){\\n  .tfp .types--prog,.tfp .types--prog.types--n1,.tfp .types--prog.types--n2{grid-template-columns:1fr}\\n}\\n\\n/* About block with no photograph. Every class thumbnail carries its own title\\n   burned into the image, so one used as editorial art reads as a screenshot\\n   rather than photography. Until the client sends a photo per category, the\\n   block runs single column at a comfortable measure instead of carrying a\\n   placeholder. */\\n.tfp .inside-grid--solo{grid-template-columns:minmax(0,1fr);max-width:880px}\\n.tfp .inside-grid--solo .inside-body .lead{max-width:62ch}\\n\\n/* Category hero art. The class-type artwork is 3840x2160 with the category name\\n   burned in; the shared 4/5 portrait crop sliced it to \\\"IVE CLASSE\\\" and\\n   \\\"FORMER PIL\\\". Category heroes keep the artwork's own ratio. The badge moves\\n   inside the frame, because a 16:9 image is not tall enough to carry it on the\\n   overhang the portrait crop allowed. */\\n.tfp .hero-media--wide img{aspect-ratio:16/9;object-position:center}\\n.tfp .hero-media--wide .hero-badge{transform:translate(-10%,26%)}\\n@media (max-width:940px){.tfp .hero-media--wide img{aspect-ratio:16/9}}\\n@media (max-width:620px){.tfp .hero-media--wide img{aspect-ratio:16/9;object-position:center}}\\n\"\n  var HTML = \"\\n<!-- ===== HERO ===== -->\\n<section class=\\\"hero dark\\\">\\n  <div class=\\\"wrap\\\">\\n    <div class=\\\"hero-grid\\\">\\n      <div class=\\\"hero-copy\\\">\\n        <p class=\\\"eyebrow eyebrow-invert eyebrow-rule rv\\\">Class Type</p>\\n\\n        <img class=\\\"hero-logo rv\\\" style=\\\"transition-delay:.04s\\\"\\n             src=\\\"https://tashafranken.com/cdn/shop/files/t-f-studio-img_65a7bbb7-6482-48a1-b8ad-4817d0eb32a1.png?width=900\\\"\\n             alt=\\\"T\\u00a0\\u2014\\u00a0F\\u00a0Studio\\\" width=\\\"1867\\\" height=\\\"359\\\">\\n\\n        <h1 class=\\\"display h1 rv\\\" style=\\\"transition-delay:.08s\\\">Mat moves, gym\\u00a0equipment.</h1>\\n\\n        <p class=\\\"hero-sub h-sub lead-invert rv\\\" style=\\\"transition-delay:.12s\\\">Love Pilates and love the gym? Now you can do both with these <span style=\\\"white-space:nowrap\\\">gym-friendly</span>\\u00a0classes!</p>\\n\\n        <div class=\\\"hero-actions rv\\\" style=\\\"transition-delay:.18s\\\">\\n          <a class=\\\"btn btn--light js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Start Your <span style=\\\"white-space:nowrap\\\">7-Day</span> Free Trial</span></a>\\n          <a class=\\\"btn btn--ghost-dark\\\" href=\\\"#the-classes\\\"><span>See the classes</span></a>\\n        </div>\\n\\n        <p class=\\\"micro micro-invert rv\\\" style=\\\"transition-delay:.22s\\\"><span class=\\\"rl\\\">Nothing charged for 7 days</span> <span class=\\\"dot\\\">\\u00b7</span> <span class=\\\"rl\\\"> Cancel anytime</span> <span class=\\\"dot\\\">\\u00b7</span> <span class=\\\"rl\\\">Access in 60 seconds</span></p>\\n      </div>\\n\\n      <div class=\\\"hero-media hero-media--wide rv\\\" style=\\\"transition-delay:.1s\\\">\\n        <img src=\\\"https://vhx.imgix.net/movewithtash/assets/de508ecf-5d4f-4d53-a492-b1b8b320e2b0.png?auto=format&fit=clip&w=1400\\\" alt=\\\"A T\\u00a0\\u2014\\u00a0F\\u00a0Studio gym class\\\" fetchpriority=\\\"high\\\">\\n        <div class=\\\"hero-badge\\\"><span class=\\\"n\\\">11</span><span class=\\\"l\\\"> Classes</span></div>\\n      </div>\\n    </div>\\n  </div>\\n</section>\\n\\n<!-- ===== STATS ===== -->\\n<section class=\\\"stats\\\" aria-label=\\\"T\\u00a0\\u2014\\u00a0F\\u00a0Studio at a glance\\\">\\n  <div class=\\\"stats-inner\\\"><div class=\\\"stat rv\\\"><span class=\\\"v\\\"><span class=\\\"num\\\" data-to=\\\"11\\\" data-dec=\\\"0\\\" data-group=\\\"0\\\" data-suffix=\\\"\\\">11</span></span><span class=\\\"k\\\">Classes in this category</span></div><div class=\\\"stat rv\\\" style=\\\"transition-delay:.06s\\\"><span class=\\\"v\\\"><span class=\\\"num\\\" data-to=\\\"27000\\\" data-dec=\\\"0\\\" data-group=\\\"1\\\" data-suffix=\\\"+\\\">27,000+</span></span><span class=\\\"k\\\">Members</span></div><div class=\\\"stat rv\\\" style=\\\"transition-delay:.12s\\\"><span class=\\\"v\\\"><span class=\\\"num\\\" data-to=\\\"5.0\\\" data-dec=\\\"1\\\" data-group=\\\"0\\\" data-suffix=\\\"\\\">5.0</span></span><span class=\\\"k\\\">App Store Rating</span></div><div class=\\\"stat rv\\\" style=\\\"transition-delay:.18s\\\"><span class=\\\"v\\\"><span class=\\\"num\\\" data-to=\\\"1000\\\" data-dec=\\\"0\\\" data-group=\\\"1\\\" data-suffix=\\\"+\\\">1,000+</span></span><span class=\\\"k\\\">Classes in the app</span></div></div>\\n</section>\\n\\n<!-- ===== PRESS LOGO BAR ===== -->\\n<section class=\\\"press\\\" aria-label=\\\"As featured in\\\">\\n  <div class=\\\"wrap\\\"><div class=\\\"logo-list rv\\\"><div class=\\\"logo-list__item\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/asfeatured.png?width=400\\\" alt=\\\"As featured in\\\" loading=\\\"lazy\\\"></div>\\n      <div class=\\\"logo-list__item\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/self.png?width=400\\\" alt=\\\"SELF\\\" loading=\\\"lazy\\\"></div>\\n      <div class=\\\"logo-list__item\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/cosopolitan.png?width=400\\\" alt=\\\"Cosmopolitan\\\" loading=\\\"lazy\\\"></div>\\n      <div class=\\\"logo-list__item\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/business.png?width=400\\\" alt=\\\"Business Insider\\\" loading=\\\"lazy\\\"></div>\\n      <div class=\\\"logo-list__item\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/marie.png?width=400\\\" alt=\\\"Marie Claire\\\" loading=\\\"lazy\\\"></div></div></div>\\n</section>\\n\\n<!-- ===== ABOUT THIS CATEGORY ===== -->\\n<section class=\\\"section inside\\\" id=\\\"inside\\\">\\n  <div class=\\\"wrap inside-grid inside-grid--solo\\\">\\n    \\n    <div class=\\\"inside-body rv\\\" style=\\\"transition-delay:.08s\\\">\\n      <p class=\\\"eyebrow eyebrow-rule\\\">About This Category</p>\\n      <h2 class=\\\"h2\\\">Pilates control, gym\\u00a0strength.</h2>\\n      <p class=\\\"lead\\\">These classes take the form and control of Pilates onto gym equipment: a bench or step, a Bosu ball, hand and ankle weights, and a weighted\\u00a0ring.</p>\\n      <p class=\\\"lead\\\">They are the athletic side of the studio. Most are intermediate or advanced, and every class names its level and equipment before you\\u00a0start.</p>\\n      \\n      <ul class=\\\"rule-list\\\"><li><span class=\\\"idx\\\">01</span><span class=\\\"txt\\\">11 classes in this category, from 15 to 35\\u00a0minutes.</span></li>\\n        <li><span class=\\\"idx\\\">02</span><span class=\\\"txt\\\">Built around a bench, a step, a Bosu ball and\\u00a0weights.</span></li>\\n        <li><span class=\\\"idx\\\">03</span><span class=\\\"txt\\\">Mostly intermediate and advanced, for gym days or a home\\u00a0setup.</span></li>\\n        </ul>\\n    </div>\\n  </div>\\n</section>\\n\\n<!-- ===== THE CLASSES ===== -->\\n<section class=\\\"section plan plan--c6 dark\\\" id=\\\"the-classes\\\">\\n  <div class=\\\"wrap\\\">\\n    <div class=\\\"plan-head\\\">\\n      <div class=\\\"rv\\\">\\n        <p class=\\\"eyebrow eyebrow-invert eyebrow-rule\\\">The Classes</p>\\n        <h2 class=\\\"h2\\\" style=\\\"margin-top:20px\\\">The gym\\u00a0classes.</h2>\\n      </div>\\n      <p class=\\\"lead lead-invert rv\\\" style=\\\"transition-delay:.08s\\\">All 11 gym classes, from a short upper body burn to a full Bosu strength\\u00a0session.\\n        <span class=\\\"micro micro-invert\\\" style=\\\"display:block;margin-top:10px\\\">Open any class to see what it covers.</span>\\n      </p>\\n    </div>\\n\\n    <div id=\\\"scheduleGroups\\\"></div>\\n\\n    <div class=\\\"plan-foot rv\\\">\\n      <p class=\\\"micro micro-invert\\\">11 classes<span class=\\\"dot\\\">\\u00b7</span>15 to 35 minutes<span class=\\\"dot\\\">\\u00b7</span>Bench, Bosu and weights</p>\\n      <a class=\\\"btn btn--light js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Start Your <span style=\\\"white-space:nowrap\\\">7-Day</span> Free Trial</span></a>\\n    </div>\\n  </div>\\n</section>\\n<!-- ===== APP / HOW IT WORKS ===== -->\\n<section class=\\\"section app\\\" id=\\\"app\\\">\\n  <div class=\\\"wrap\\\">\\n    <div class=\\\"app-head rv\\\">\\n      <p class=\\\"eyebrow\\\" style=\\\"justify-content:center;display:flex\\\">How it\\u00a0works</p>\\n      <h2 class=\\\"h2\\\" style=\\\"margin-top:18px\\\">Your whole plan, in your\\u00a0pocket.</h2>\\n      <p class=\\\"lead\\\" style=\\\"margin-top:20px\\\">Studio-Level results at home in just 25 minutes for a lean, sculpted\\u00a0body.</p>\\n    </div>\\n\\n    <div class=\\\"app-mock rv\\\" style=\\\"transition-delay:.06s\\\">\\n      <img src=\\\"https://tashafranken.com/cdn/shop/files/iPad_Updated_Photo_with_iPhone-2_1024x1024.png?width=1600\\\"\\n           alt=\\\"The T\\u00a0\\u2014\\u00a0F\\u00a0Studio app shown on iPad and iPhone\\\" loading=\\\"lazy\\\">\\n    </div>\\n\\n    <div class=\\\"steps\\\">\\n      <div class=\\\"step rv\\\">\\n        <div class=\\\"step-ico\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/step-1_small.png?width=220\\\" alt=\\\"\\\" loading=\\\"lazy\\\"></div>\\n        <h3 class=\\\"step-title\\\">1 | Pick Your\\u00a0Focus</h3>\\n        <p>Choose from a huge library of classes designed around your goals, including strength, lean, on-the-go, target focus, duration, and\\u00a0more.</p>\\n      </div>\\n      <div class=\\\"step rv\\\" style=\\\"transition-delay:.08s\\\">\\n        <div class=\\\"step-ico\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/step-2_small.png?width=220\\\" alt=\\\"\\\" loading=\\\"lazy\\\"></div>\\n        <h3 class=\\\"step-title\\\">2 | Follow Your Personal\\u00a0Calendar</h3>\\n        <p>Not sure which class or program is right for you? Follow our weekly schedule to find the perfect\\u00a0plan.</p>\\n      </div>\\n      <div class=\\\"step rv\\\" style=\\\"transition-delay:.16s\\\">\\n        <div class=\\\"step-ico\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/step-3_small.png?width=220\\\" alt=\\\"\\\" loading=\\\"lazy\\\"></div>\\n        <h3 class=\\\"step-title\\\">3 | See Your\\u00a0Results</h3>\\n        <p>With new classes added weekly and updated monthly calendars, you'll stay motivated, challenged, and moving steadily toward lasting\\u00a0results.</p>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"badges rv\\\">\\n      <a href=\\\"https://apps.apple.com/us/app/tf-studio/id1558654839\\\" aria-label=\\\"Download on the App Store\\\">\\n        <img src=\\\"https://tashafranken.com/cdn/shop/files/apple-app-store.png?width=400\\\" alt=\\\"Download on the App Store\\\" loading=\\\"lazy\\\"></a>\\n      <a href=\\\"https://play.google.com/store/apps/details\\\" aria-label=\\\"Get it on Google Play\\\">\\n        <img src=\\\"https://tashafranken.com/cdn/shop/files/android-app-store.png?width=400\\\" alt=\\\"Get it on Google Play\\\" loading=\\\"lazy\\\"></a>\\n    </div>\\n    <p class=\\\"app-plat rv\\\">Available on iOS, Android, Web &amp;\\u00a0TV</p>\\n  </div>\\n</section>\\n\\n<!-- ===== REVIEWS ===== -->\\n<section class=\\\"section reviews\\\" id=\\\"reviews\\\">\\n  <div class=\\\"wrap reviews-head rv\\\">\\n    <p class=\\\"eyebrow\\\"> Member\\u00a0Stories</p>\\n    <h2 class=\\\"h2\\\" style=\\\"margin-top:18px\\\">Started exactly where you\\u00a0are.</h2>\\n  </div>\\n  <div class=\\\"marquee\\\" id=\\\"marquee\\\"><div class=\\\"marquee__track\\\" id=\\\"reviewTrack\\\"></div></div>\\n  <div class=\\\"marquee-controls\\\">\\n    <button type=\\\"button\\\" class=\\\"marquee-pause\\\" id=\\\"marqueePause\\\" aria-pressed=\\\"false\\\">\\n      <svg viewBox=\\\"0 0 12 12\\\" aria-hidden=\\\"true\\\" id=\\\"marqueeIcon\\\"><rect x=\\\"1\\\" y=\\\"1\\\" width=\\\"3.4\\\" height=\\\"10\\\"/><rect x=\\\"7.6\\\" y=\\\"1\\\" width=\\\"3.4\\\" height=\\\"10\\\"/></svg>\\n      <span id=\\\"marqueePauseLabel\\\"> Pause\\u00a0reviews</span>\\n    </button>\\n  </div>\\n</section>\\n\\n<!-- ===== MEMBERSHIP ===== -->\\n<section class=\\\"section member dark\\\" id=\\\"membership\\\">\\n  <div class=\\\"wrap member-grid\\\">\\n    <div class=\\\"rv\\\">\\n      <p class=\\\"eyebrow eyebrow-invert eyebrow-rule\\\">Included In Your\\u00a0Membership</p>\\n      <h2 class=\\\"h2\\\" style=\\\"margin-top:20px\\\">One membership. The whole\\u00a0studio.</h2>\\n      <p class=\\\"lead lead-invert\\\" style=\\\"margin-top:22px\\\">Every class in this category is included with your T\\u00a0\\u2014\\u00a0F\\u00a0Studio membership, which begins with a <span style=\\\"white-space:nowrap\\\">7-day</span> free\\u00a0trial.</p>\\n      <ul class=\\\"member-list\\\"><li><svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" aria-hidden=\\\"true\\\"><path d=\\\"M3 10.5L7.8 15L17 5\\\" stroke=\\\"#fff\\\" stroke-width=\\\"1.4\\\"/></svg><span>1,000+ Mat &amp; Reformer classes, new ones\\u00a0weekly</span></li>\\n        <li><svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" aria-hidden=\\\"true\\\"><path d=\\\"M3 10.5L7.8 15L17 5\\\" stroke=\\\"#fff\\\" stroke-width=\\\"1.4\\\"/></svg><span>60+ structured programs for every goal and\\u00a0stage</span></li>\\n        <li><svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" aria-hidden=\\\"true\\\"><path d=\\\"M3 10.5L7.8 15L17 5\\\" stroke=\\\"#fff\\\" stroke-width=\\\"1.4\\\"/></svg><span>New classes added every\\u00a0week</span></li>\\n        <li><svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 20 20\\\" fill=\\\"none\\\" aria-hidden=\\\"true\\\"><path d=\\\"M3 10.5L7.8 15L17 5\\\" stroke=\\\"#fff\\\" stroke-width=\\\"1.4\\\"/></svg><span>iOS, Android, web and TV. Practise anywhere</span></li></ul>\\n    </div>\\n\\n    <div class=\\\"plans rv\\\" style=\\\"transition-delay:.08s\\\">\\n      <label class=\\\"plan-card\\\">\\n        <input type=\\\"radio\\\" name=\\\"plan\\\" value=\\\"yearly\\\" checked>\\n        <span class=\\\"plan-top\\\"><span class=\\\"plan-dot\\\" aria-hidden=\\\"true\\\"></span><span class=\\\"plan-name\\\">Annual</span><span class=\\\"plan-tag\\\">3 Months Free</span></span>\\n        <span class=\\\"plan-price\\\"><span class=\\\"p\\\">$179</span><span class=\\\"per\\\">/ year</span><span class=\\\"was\\\">$239.88</span></span>\\n        <span class=\\\"plan-note\\\">Billed once a year after your free\\u00a0trial.</span>\\n      </label>\\n      <label class=\\\"plan-card\\\">\\n        <input type=\\\"radio\\\" name=\\\"plan\\\" value=\\\"monthly\\\">\\n        <span class=\\\"plan-top\\\"><span class=\\\"plan-dot\\\" aria-hidden=\\\"true\\\"></span><span class=\\\"plan-name\\\">Monthly</span></span>\\n        <span class=\\\"plan-price\\\"><span class=\\\"p\\\">$19.99</span><span class=\\\"per\\\">/ month</span></span>\\n        <span class=\\\"plan-note\\\">Flexible month to month. Cancel\\u00a0anytime.</span>\\n      </label>\\n      <div class=\\\"member-cta\\\">\\n        <a class=\\\"btn btn--light btn--full js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Start Your <span style=\\\"white-space:nowrap\\\">7-Day</span> Free\\u00a0Trial</span></a>\\n        <p class=\\\"micro micro-invert\\\" style=\\\"margin-top:15px;text-align:center\\\"><span class=\\\"rl\\\">Nothing charged for 7\\u00a0days</span> <span class=\\\"dot\\\">\\u00b7</span> <span class=\\\"rl\\\"> Cancel\\u00a0anytime</span> <span class=\\\"dot\\\">\\u00b7</span> <span class=\\\"rl\\\">Access in 60\\u00a0seconds</span></p>\\n      </div>\\n    </div>\\n  </div>\\n</section>\\n\\n\\n<!-- ===== FAQ ===== -->\\n<section class=\\\"section faq\\\" id=\\\"faq\\\">\\n  <div class=\\\"wrap faq-wrap\\\">\\n    <div class=\\\"rv\\\"><p class=\\\"eyebrow eyebrow-rule\\\">Questions</p>\\n      <h2 class=\\\"h2\\\" style=\\\"margin-top:20px\\\">Gym class\\u00a0questions.</h2></div>\\n    <div class=\\\"faq-list\\\">\\n      <details class=\\\"rv\\\" open><summary><span>Do I need a gym\\u00a0membership?</span></summary><div class=\\\"faq-a\\\"><p>No, but you need the equipment. Classes use a bench or step, a Bosu ball, hand and ankle weights, or a weighted ring, and each one lists what it needs. Most gyms have a bench, a step and a Bosu\\u00a0ball.</p></div></details>\\n      <details class=\\\"rv\\\"><summary><span>Are these classes for\\u00a0beginners?</span></summary><div class=\\\"faq-a\\\"><p>Most are intermediate or advanced. If you are new to Pilates, start with the 14-Day Beginner Plan and come back to these once the form feels\\u00a0familiar.</p></div></details>\\n      <details class=\\\"rv\\\"><summary><span>How long are\\u00a0they?</span></summary><div class=\\\"faq-a\\\"><p>Between 15 and 35 minutes. Most run 25 to 30\\u00a0minutes.</p></div></details>\\n      <details class=\\\"rv\\\"><summary><span>Are they included in my\\u00a0membership?</span></summary><div class=\\\"faq-a\\\"><p>Yes. All 11 gym classes are part of the T\\u00a0\\u2014\\u00a0F\\u00a0Studio membership, alongside more than a thousand other\\u00a0classes.</p></div></details>\\n      \\n    </div>\\n  </div>\\n</section>\\n<!-- ===== FULL-BLEED BRAND BAND ===== -->\\n<div class=\\\"band\\\" aria-hidden=\\\"true\\\"><img src=\\\"https://tashafranken.com/cdn/shop/files/tf-fuel-band-v1.jpg?width=2000\\\" alt=\\\"\\\" loading=\\\"lazy\\\"></div>\\n\\n<!-- ===== FINAL CTA ===== -->\\n<section class=\\\"section final dark\\\">\\n  <div class=\\\"wrap\\\">\\n    <p class=\\\"eyebrow eyebrow-invert rv\\\">Start Today</p>\\n    <h2 class=\\\"h2 rv\\\" style=\\\"transition-delay:.06s\\\">Bring Pilates to gym\\u00a0day.</h2>\\n    <p class=\\\"h-sub lead-invert rv\\\" style=\\\"transition-delay:.1s\\\">11 gym classes that build strength with Pilates control, plus more than a thousand classes in the\\u00a0app.</p>\\n    <div class=\\\"rv\\\" style=\\\"transition-delay:.14s\\\">\\n      <a class=\\\"btn btn--light js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Start Your <span style=\\\"white-space:nowrap\\\">7-Day</span> Free\\u00a0Trial</span></a>\\n      <p class=\\\"micro micro-invert\\\" style=\\\"margin-top:20px\\\">Nothing charged for 7\\u00a0days<span class=\\\"dot\\\">\\u00b7</span> Cancel\\u00a0anytime</p>\\n    </div>\\n  </div>\\n</section>\\n\\n\\n\\n<!-- ===== STICKY MOBILE CTA ===== -->\\n<div class=\\\"sticky-cta\\\" id=\\\"stickyCta\\\">\\n  <span class=\\\"lbl\\\"><b>Gym Classes</b><span class=\\\"lbl-sub\\\">Free for 7 days \\u00b7 Cancel\\u00a0anytime</span></span>\\n  <a class=\\\"btn js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Start Free</span></a>\\n</div>\\n\\n<!-- ===== DAY MODAL ===== -->\\n<div class=\\\"modal\\\" id=\\\"dayModal\\\" role=\\\"dialog\\\" aria-modal=\\\"true\\\" aria-labelledby=\\\"modalTitle\\\">\\n  <div class=\\\"modal__scrim\\\" data-close></div>\\n  <div class=\\\"modal__box\\\">\\n    <button class=\\\"modal__close\\\" data-close aria-label=\\\"Close\\\">&times;</button>\\n    <!-- no src= until the modal is populated: an empty src resolves to the page URL, so every load re-downloaded the page HTML -->\\n    <span class=\\\"modal__thumb\\\" id=\\\"modalThumb\\\" style=\\\"display:none\\\"><img alt=\\\"\\\" loading=\\\"lazy\\\"></span>\\n    <p class=\\\"modal__week\\\" id=\\\"modalWeek\\\"></p>\\n    <p class=\\\"modal__day\\\" id=\\\"modalDay\\\"></p>\\n    <h3 class=\\\"modal__title\\\" id=\\\"modalTitle\\\"></h3>\\n    <div class=\\\"modal__meta\\\" id=\\\"modalMeta\\\"></div>\\n    <p class=\\\"modal__desc\\\" id=\\\"modalDesc\\\"></p>\\n    <div class=\\\"modal__cta\\\">\\n      <a class=\\\"btn btn--outline js-cta\\\" href=\\\"https://www.tashafranken.tv/checkout/subscribe/purchase?plan=yearly\\\"><span>Unlock with a free\\u00a0trial</span></a>\\n    </div>\\n  </div>\\n</div>\\n\\n\\n\\n\"\n  var FONTS = \"<link href=\\\"https://fonts.googleapis.com/css2?family=Barlow:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Lora:ital,wght@0,400;1,400;1,500&family=Cormorant+Garamond:wght@300;400;500&display=swap\\\" rel=\\\"stylesheet\\\">\";\n  var host = document.getElementById('tfp-mount');\n  if (!host || host.shadowRoot) { return; }\n  document.head.insertAdjacentHTML('beforeend', FONTS);\n  var d = document.createElement('style'); d.textContent = DOC_CSS; document.head.appendChild(d);\n  var ROOT = host.attachShadow({mode:'open'});\n  var s = document.createElement('style'); s.textContent = CSS; ROOT.appendChild(s);\n  var wrap = document.createElement('div'); wrap.className = 'tfp'; wrap.innerHTML = HTML;\n  ROOT.appendChild(wrap);\n  (function(){\n  var CHECKOUT = 'https://www.tashafranken.tv/checkout/subscribe/purchase';\n\n  /* ================= DATA (injected by build.py from the program JSON) ================= */\n  var SCHEDULE = [{\"label\": \"All 11 gym classes\", \"items\": [{\"n\": \"01\", \"unit\": \"Class 01\", \"t\": \"Upper Body Ignite\", \"m\": \"15 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/fe363fec-eae8-4ed9-97b7-c9dd3f7649d2?w=640&h=360&fit=crop&auto=format\", \"d\": \"Fire up your arms, shoulders, and back in this advanced 15-minute upper-body sculpt. Using light hand weights, you\\u2019ll build heat quickly through controlled, strength-focused sequences that challenge your endurance.\"}, {\"n\": \"02\", \"unit\": \"Class 02\", \"t\": \"Step Up\", \"m\": \"18 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/a6b4a216-58de-4e9f-89e2-edef254bcfed?w=640&h=360&fit=crop&auto=format\", \"d\": \"Step it up! In today's dynamic class, you\\u2019ll be getting the best of both worlds - a cardio burn as well as a full body toning session.\"}, {\"n\": \"03\", \"unit\": \"Class 03\", \"t\": \"20 Mins Athletic Pilates\", \"m\": \"23 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/be418f51-7851-46f0-abbe-96cd6d4f1610?w=640&h=360&fit=crop&auto=format\", \"d\": \"Calling all Pilates athletes! Grab your hand weights and join this 20 min class to burn, tone and sculpt your full body.\"}, {\"n\": \"04\", \"unit\": \"Class 04\", \"t\": \"Pilates Step\", \"m\": \"25 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/579cfce7-7d8c-4bd7-afc4-faf52058f6f4?w=640&h=360&fit=crop&auto=format\", \"d\": \"Step it up! In this dynamic class, you\\u2019ll be getting in a cardio burn as well as a full body toning session.\"}, {\"n\": \"05\", \"unit\": \"Class 05\", \"t\": \"Balancing Pilates\", \"m\": \"25 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/a91c7dda-086e-4312-b2ae-2a4a69df2cac?w=640&h=360&fit=crop&auto=format\", \"d\": \"Take your gym workout to the next level! Get ready to feel strong and sculpt your entire body from head to tow using the bosu.\"}, {\"n\": \"06\", \"unit\": \"Class 06\", \"t\": \"Bosu Pilates\", \"m\": \"27 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/ee7ebdf4-098d-400d-9299-d49730996007?w=640&h=360&fit=crop&auto=format\", \"d\": \"Challenge your strength, balance, and coordination in this advanced Bosu Pilates workout. Using the instability of the Bosu ball, you'll engage your entire body, especially your core, for a sculpting session that\\u2019s as energizing as it is effective.\"}, {\"n\": \"07\", \"unit\": \"Class 07\", \"t\": \"Strong Full Body\", \"m\": \"29 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/08fea583-0ef4-4219-8df5-d1d5faa99507?w=640&h=360&fit=crop&auto=format\", \"d\": \"Impress everyone at the gym in this full body workout. Using the bosu ball and weighted ring, you\\u2019ll be sure to fire up your body from head to toe.\"}, {\"n\": \"08\", \"unit\": \"Class 08\", \"t\": \"Step It Up\", \"m\": \"30 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/1c018c73-d323-4040-8b65-728fecd0cd1a?w=640&h=360&fit=crop&auto=format\", \"d\": \"Who's ready for another gym workout? In this 30 min class, we're turning things up a notch using the bench, and ankle weights for a 360 full body burn.\"}, {\"n\": \"09\", \"unit\": \"Class 09\", \"t\": \"Bosu Strength\", \"m\": \"30 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/15aa0737-1bce-424a-8b5b-10e44eb24a31?w=640&h=360&fit=crop&auto=format\", \"d\": \"Take your gym workout to the next level! Get ready to feel strong using weights and by incorporating the bosu, challenge your balance and work those hard to reach muscles.\"}, {\"n\": \"10\", \"unit\": \"Class 10\", \"t\": \"Bench Pilates\", \"m\": \"30 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/0e95f23c-c5cf-4337-b181-9df6148db5bf?w=640&h=360&fit=crop&auto=format\", \"d\": \"Calling all our gym lovers - this one\\u2019s for you! Our first bench Pilates class will tone your muscles and elevate your heart rate.\"}, {\"n\": \"11\", \"unit\": \"Class 11\", \"t\": \"Bosu Pilates\", \"m\": \"35 min\", \"img\": \"https://vhx.imgix.net/movewithtash/assets/852d1945-77dd-40e9-8489-300abf93bee4?w=640&h=360&fit=crop&auto=format\", \"d\": \"Love Pilates and love the gym? You can do both!\"}]}];   /* [{label, items:[{n,t,m,d}]}] \u2014 may be []      */\n  var REVIEWS  = [{\"n\": \"Katya Berger\", \"img\": \"testimonial-1_large.jpg\", \"q\": \"T\u00A0\u2014\u00A0F\u00A0Studio is my go-to! I love how I'm able to customize my workouts based on my mood, energy levels, and location. Thank you Tasha for teaching me about the importance of the mind-body connection, and for keeping me in shape all these\u00A0years!\"}, {\"n\": \"Megan Williams\", \"img\": \"megan_large.jpg\", \"q\": \"Tasha's workouts are always my go to. I know I'm always going to be challenged! Her reminders while doing the exercises are always so helpful and means I can correct myself to get the most out of every\u00A0workout!\"}, {\"n\": \"Kelsey\", \"img\": \"testimonial-5_large.jpg\", \"q\": \"With 6 weeks to go before my wedding I decided to get on T\u00A0\u2014\u00A0F\u00A0Studio's app! My body went from sluggish to the best I've ever felt in my life! Not only did it help with my physical body, but I noticed I was excited to workout, my stress levels were way\u00A0down.\"}, {\"n\": \"Kristy Godso\", \"img\": \"kristy_large.jpg\", \"q\": \"Tasha's workouts are the perfect mix of fun and challenging! I love using TF studio both when I'm traveling and when I'm at home as her vast library of mat based workouts has me covered for all my pilates\u00A0needs.\"}, {\"n\": \"Francesca\", \"img\": \"testimonial-2_large.jpg\", \"q\": \"I had tried a lot of different exercise techniques including Pilates and barre. Working out with TF completely changed my mind. After just a few months, not only did my shape transform but I felt stronger than I ever had before, physically and\u00A0mentally.\"}, {\"n\": \"Babba Rivera\", \"img\": \"babba_large.jpg\", \"q\": \"HUGE fan of TF Studio! Finally a Pilates practice that feels attainable with my busy schedule. The app and pre-set programs make it so easy to stick to a daily routine, and Tasha will make sure those 25 min on the mat are well spent. I am already seeing abs after just a few\u00A0weeks!\"}, {\"n\": \"Rachel Hilbert\", \"img\": \"rachel_large.jpg\", \"q\": \"I used to do hardcore workouts and never got the results I wanted. I discovered TF Studio back in 2020 and have been committed since. Not only has Tasha changed my body, but she has also transformed my mindset. You never get bored with all the different workouts she offers; she makes it fun and\u00A0enjoyable!\"}, {\"n\": \"Sophia Li\", \"img\": \"sophia_large.jpg\", \"q\": \"I don't go anywhere without my TF app. It's downloaded on my phone, iPad and home tv. It's my go to workout at home and while traveling. I've done hundreds of different studio classes in NYC and LA and these have been the most effective and consistent for me to keep up\u00A0with.\"}, {\"n\": \"Natalie Holloway\", \"img\": \"natalie_large.jpg\", \"q\": \"Love TF Studio. It truly is the best workout for my whole body. Tasha's training technique keeps me engaged and excited to start and finish my workout. It's my go to when I need to move my\u00A0body!\"}];    /* [{n, img, q}]                                  */\n  var MODAL_TAGS = [\"Gym\"];/* e.g. [\"Beginner\",\"Mat\"]                       */\n\n  /* ================= Schedule grid ================= */\n  var flat = [];\n  SCHEDULE.forEach(function(g, gi){\n    g.items.forEach(function(it){ flat.push({item: it, group: g.label, gi: gi}); });\n  });\n\n  var ARROW = '<span class=\"go\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\"><path d=\"M5 12h14M13 6l6 6-6 6\"/></svg></span>';\n\n  /* Hover stays TEXT ONLY on purpose. The class artwork is 640px wide with the\n     title, duration and equipment typeset into it \u2014 shrunk into a ~176px grid\n     tile that baked-in text renders around 8px and is unreadable, and it fights\n     the description on top of it. Artwork appears where it has room instead:\n     the modal (~500px) and the \"look inside\" strip. Tested, not assumed. */\n  function peek(d){\n    if (!d.d) return '';\n    return '<span class=\"peek peek--plain\"><span class=\"peek-copy\" data-day=\"'+d.label0+'\">'+d.d+'</span></span>';\n  }\n\n  function dayCard(entry, i){\n    var d = entry.item;\n    return '<button class=\"day'+(d.rest ? ' day--rest' : '')+(d.kind ? ' day--'+d.kind : '')+'\" type=\"button\" data-i=\"'+i+'\" aria-haspopup=\"dialog\">'+ARROW+\n           '<span class=\"n\">'+d.n+'</span>'+\n           '<span class=\"t\">'+d.t+'</span>'+\n           (d.m ? '<span class=\"m\">'+d.m+'</span>' : '')+\n           peek(d)+\n           '</button>';\n  }\n\n  /* Two ways the grid can be mounted:\n     - #scheduleGroups           the standalone plan section (five programs)\n     - .cd-sched[data-group=\"N\"] one grid per countdown phase, behind a toggle\n       (Baby: the countdown carries the narrative, each trimester's 24 classes\n       sit folded inside its own phase). */\n  var phaseHosts = ROOT.querySelectorAll('.cd-sched[data-group]');\n  if (phaseHosts.length && SCHEDULE.length){\n    var pidx = 0;\n    SCHEDULE.forEach(function(g, gi){\n      var cards = g.items.map(function(){\n        var e = flat[pidx]; e.item.label0 = e.item.unit || ('Day ' + e.item.n);\n        return dayCard(e, pidx++);\n      }).join('');\n      var host = ROOT.querySelector('.cd-sched[data-group=\"' + gi + '\"]');\n      if (host) host.innerHTML = '<div class=\"days\">' + cards + '</div>';\n    });\n    ROOT.addEventListener('click', function(ev){\n      var btn = ev.target.closest ? ev.target.closest('.cd-more') : null;\n      if (!btn) return;\n      var phase = btn.closest('.cd-phase');\n      if (!phase) return;\n      var open = phase.classList.toggle('is-open');\n      btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n      if (!open) btn.scrollIntoView({ block: 'nearest' });\n    });\n  }\n\n  var groupsHost = ROOT.getElementById('scheduleGroups');\n  if (groupsHost && SCHEDULE.length){\n    var idx = 0, html = '';\n    SCHEDULE.forEach(function(g, gi){\n      var cards = g.items.map(function(){ var e = flat[idx]; e.item.label0 = e.item.unit || ('Day ' + e.item.n); return dayCard(e, idx++); }).join('');\n      /* Groups bigger than a week (Baby's 24-class trimesters) turn a phone\n         into an 18,000px scroll. Anything over 8 tiles gets collapsed to the\n         first six on narrow screens with a control to open it; the CSS keeps\n         everything visible from 1081px up, where the grid is wide enough that\n         the length is not a problem. */\n      var big = g.items.length > 8;\n      var more = big\n        ? '<button class=\"week-more\" type=\"button\" aria-expanded=\"false\">' +\n            '<span class=\"week-more__open\">Show all ' + g.items.length + ' classes</span>' +\n            '<span class=\"week-more__shut\">Show fewer</span></button>'\n        : '';\n      html += '<div class=\"week rv'+(big ? ' week--big is-clamped' : '')+'\"'+(gi ? ' style=\"transition-delay:.06s\"' : '')+'>'+\n                '<p class=\"week-label\">'+g.label+'</p>'+\n                '<div class=\"days\">'+cards+'</div>'+\n                more+\n              '</div>';\n    });\n    groupsHost.innerHTML = html;\n\n    groupsHost.addEventListener('click', function(ev){\n      var btn = ev.target.closest ? ev.target.closest('.week-more') : null;\n      if (!btn) return;\n      var wk = btn.parentNode;\n      var open = wk.classList.toggle('is-clamped') === false;\n      btn.setAttribute('aria-expanded', open ? 'true' : 'false');\n      if (!open) wk.scrollIntoView({ block: 'nearest' });\n    });\n  }\n\n  /* \"A look inside\" \u2014 a sample of the class artwork (max 6), not the full list.\n     Touch devices get no hover, so this is where they see the artwork. */\n  var lookHost = ROOT.getElementById('lookStrip');\n  if (lookHost){\n    var withArt = flat.filter(function(e){ return e.item.img; }).slice(0, 6);\n    if (withArt.length >= 3){\n      lookHost.innerHTML = withArt.map(function(e){\n        var d = e.item;\n        return '<figure><img src=\"'+d.img+'\" alt=\"'+d.t.replace(/\"/g,'&quot;')+'\" loading=\"lazy\">'+\n               '<figcaption>'+(d.unit || ('Day ' + d.n))+' \u2014 '+d.t+'</figcaption></figure>';\n      }).join('');\n    } else {\n      var wrapEl = ROOT.getElementById('lookSection');\n      if (wrapEl) wrapEl.remove();\n    }\n  }\n\n  /* ---- drag-to-scroll on the artwork strip (mouse/trackpad + pen).\n         Touch is left alone \u2014 native momentum scrolling is better than anything\n         we'd simulate. ---- */\n  (function(){\n    var strip = ROOT.getElementById('lookStrip');\n    if (!strip) return;\n    var down = false, startX = 0, startScroll = 0, pid = null;\n\n    strip.addEventListener('pointerdown', function(ev){\n      if (ev.pointerType === 'touch' || ev.button !== 0) return;\n      down = true; pid = ev.pointerId;\n      startX = ev.clientX; startScroll = strip.scrollLeft;\n      strip.classList.add('is-dragging');\n      try { strip.setPointerCapture(pid); } catch(e){}\n    });\n\n    strip.addEventListener('pointermove', function(ev){\n      if (!down) return;\n      ev.preventDefault();\n      strip.scrollLeft = startScroll - (ev.clientX - startX);\n    });\n\n    function release(){\n      if (!down) return;\n      down = false;\n      strip.classList.remove('is-dragging');\n      try { strip.releasePointerCapture(pid); } catch(e){}\n    }\n    strip.addEventListener('pointerup', release);\n    strip.addEventListener('pointercancel', release);\n    strip.addEventListener('pointerleave', release);\n    /* stop the browser's native image-drag from hijacking the gesture */\n    strip.addEventListener('dragstart', function(ev){ ev.preventDefault(); });\n  })();\n\n  /* ================= Modal ================= */\n  var modal = ROOT.getElementById('dayModal'), lastFocus = null;\n  function openDay(i){\n    var e = flat[i]; if (!e) return;\n    var d = e.item;\n    var thumb = ROOT.getElementById('modalThumb');\n    if (thumb){\n      if (d.img){ thumb.style.display = 'block'; thumb.querySelector('img').src = d.img; }\n      else { thumb.style.display = 'none'; }\n    }\n    ROOT.getElementById('modalWeek').textContent  = e.group;\n    ROOT.getElementById('modalDay').textContent   = d.unit || ('Day ' + d.n);\n    ROOT.getElementById('modalTitle').textContent = d.t;\n    var tags = (d.m ? ['<span>'+d.m+'</span>'] : []).concat(MODAL_TAGS.map(function(t){ return '<span>'+t+'</span>'; }));\n    ROOT.getElementById('modalMeta').innerHTML = tags.join('');\n    ROOT.getElementById('modalDesc').textContent = d.d || '';\n    lastFocus = ROOT.activeElement;\n    modal.classList.add('is-open');\n    document.body.classList.add('is-locked');\n    modal.querySelector('.modal__close').focus();\n  }\n  function closeDay(){\n    modal.classList.remove('is-open');\n    document.body.classList.remove('is-locked');\n    if (lastFocus) lastFocus.focus();\n  }\n  ROOT.addEventListener('click', function(ev){\n    var btn = ev.target.closest('.day');\n    if (btn) { openDay(+btn.dataset.i); return; }\n    if (ev.target.closest('[data-close]')) closeDay();\n  });\n  document.addEventListener('keydown', function(ev){\n    if (!modal) return;\n    if (ev.key === 'Escape' && modal.classList.contains('is-open')) closeDay();\n    if (ev.key === 'Tab' && modal.classList.contains('is-open')) {\n      var f = modal.querySelectorAll('button, a[href]');\n      if (!f.length) return;\n      var first = f[0], last = f[f.length-1];\n      if (ev.shiftKey && ROOT.activeElement === first) { ev.preventDefault(); last.focus(); }\n      else if (!ev.shiftKey && ROOT.activeElement === last) { ev.preventDefault(); first.focus(); }\n    }\n  });\n\n  /* ================= Reviews marquee ================= */\n  var STAR = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 .587l3.668 7.568 8.332 1.151-6.064 5.762 1.548 8.186L12 18.896l-7.484 4.358 1.548-8.186L.002 9.306l8.332-1.151z\"/></svg>';\n  function reviewCard(r){\n    return '<figure class=\"review\">'+\n      '<div class=\"review__stars\" aria-label=\"5 out of 5 stars\">'+STAR+STAR+STAR+STAR+STAR+'</div>'+\n      '<blockquote class=\"review__text\">'+r.q+'</blockquote>'+\n      '<figcaption class=\"review__by\">'+\n        (r.img ? '<img src=\"https://tashafranken.com/cdn/shop/files/'+r.img+'?width=140\" alt=\"\" width=\"46\" height=\"46\" loading=\"lazy\">' : '')+\n        '<span><span class=\"nm\">'+r.n+'</span><span class=\"rl\">T\u00A0\u2014\u00A0F\u00A0Studio member</span></span>'+\n      '</figcaption></figure>';\n  }\n  var track = ROOT.getElementById('reviewTrack');\n  if (track) track.innerHTML = REVIEWS.map(reviewCard).join('') + REVIEWS.map(reviewCard).join('');\n\n  var marquee = ROOT.getElementById('marquee');\n  var pauseBtn = ROOT.getElementById('marqueePause');\n  if (marquee && pauseBtn){\n    pauseBtn.addEventListener('click', function(){\n      var paused = marquee.classList.toggle('is-paused');\n      pauseBtn.setAttribute('aria-pressed', paused ? 'true' : 'false');\n      ROOT.getElementById('marqueePauseLabel').textContent = paused ? 'Play reviews' : 'Pause reviews';\n      ROOT.getElementById('marqueeIcon').innerHTML = paused\n        ? '<path d=\"M2 1l9 5-9 5z\"/>'\n        : '<rect x=\"1\" y=\"1\" width=\"3.4\" height=\"10\"/><rect x=\"7.6\" y=\"1\" width=\"3.4\" height=\"10\"/>';\n    });\n  }\n\n  /* ================= Plan selection -> checkout =================\n     Incoming ad/tracking params are forwarded so Meta + Drip attribution\n     survives the hop to the Vimeo OTT checkout. Do not drop this. */\n  var PASS_THROUGH = /^(utm_|fbclid|gclid|ttclid|msclkid|ref$|irclickid)/i;\n  function trackingParams(){\n    var out = [];\n    try {\n      new URLSearchParams(window.location.search).forEach(function(v,k){\n        if (PASS_THROUGH.test(k)) out.push(encodeURIComponent(k)+'='+encodeURIComponent(v));\n      });\n    } catch(e){}\n    return out;\n  }\n  function syncPlan(){\n    var sel = ROOT.querySelector('input[name=\"plan\"]:checked');\n    var parts = ['plan=' + (sel ? sel.value : 'yearly')].concat(trackingParams());\n    var url = CHECKOUT + '?' + parts.join('&');\n    ROOT.querySelectorAll('.js-cta').forEach(function(a){ a.href = url; });\n  }\n  ROOT.querySelectorAll('input[name=\"plan\"]').forEach(function(r){ r.addEventListener('change', syncPlan); });\n  syncPlan();\n\n  /* ================= Header / sticky bar ================= */\n  var header = ROOT.getElementById('header'), sticky = ROOT.getElementById('stickyCta');\n  function onScroll(){\n    var y = window.scrollY || 0;\n    if (header) header.classList.toggle('is-stuck', y > 60);\n    if (sticky) sticky.classList.toggle('is-on', y > 640);\n  }\n  onScroll();\n  window.addEventListener('scroll', onScroll, {passive:true});\n\n  /* ================= Stat bar count-up =================\n     Progressive enhancement: the final value is already in the HTML. This only\n     zeroes and animates the figures once they scroll into view, and bails out\n     entirely under reduced-motion or without IntersectionObserver. */\n  (function(){\n    var nums = [].slice.call(ROOT.querySelectorAll('.stat .num'));\n    if (!nums.length) return;\n    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n    if (!('IntersectionObserver' in window) || !window.requestAnimationFrame) return;\n\n    function fmt(v, dec, group){\n      var s = v.toFixed(dec);\n      if (group){\n        var parts = s.split('.');\n        parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n        s = parts.join('.');\n      }\n      return s;\n    }\n    function render(el, v){\n      el.textContent = fmt(v, +el.dataset.dec, el.dataset.group === '1') + (el.dataset.suffix || '');\n    }\n    function run(el){\n      var to = parseFloat(el.dataset.to), DUR = 1500, t0 = null;\n      (function step(ts){\n        if (t0 === null) t0 = ts;\n        var p = Math.min(1, (ts - t0) / DUR);\n        render(el, to * (1 - Math.pow(1 - p, 3)));   /* ease-out cubic */\n        if (p < 1) window.requestAnimationFrame(step); else render(el, to);\n      })(performance.now());\n    }\n\n    nums.forEach(function(el){ render(el, 0); });    /* start from zero */\n\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(en){\n        if (!en.isIntersecting) return;\n        io.unobserve(en.target);\n        var i = nums.indexOf(en.target);\n        window.setTimeout(function(){ run(en.target); }, i * 110);  /* gentle stagger */\n      });\n    }, {threshold: 0.4});\n    nums.forEach(function(el){ io.observe(el); });\n  })();\n\n  /* ================= Parallax on the full-bleed band =================\n     Only runs while the band is on screen, throttled to one rAF per frame. */\n  (function(){\n    var band = ROOT.querySelector('.band');\n    if (!band || window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;\n    var img = band.querySelector('img');\n    if (!img) return;\n\n    var visible = false, ticking = false;\n\n    function paint(){\n      ticking = false;\n      var r = band.getBoundingClientRect();\n      var vh = window.innerHeight || document.documentElement.clientHeight;\n      /* 0 as the band enters from the bottom, 1 as it leaves past the top */\n      var p = (vh - r.top) / (vh + r.height);\n      p = p < 0 ? 0 : (p > 1 ? 1 : p);\n      var slack = r.height * 0.60;             /* matches the 164% / -32% in CSS */\n      img.style.transform = 'translate3d(0,' + ((0.5 - p) * slack).toFixed(2) + 'px,0)';\n    }\n    function onScroll(){\n      if (!visible || ticking) return;\n      ticking = true;\n      window.requestAnimationFrame(paint);\n    }\n\n    if ('IntersectionObserver' in window){\n      new IntersectionObserver(function(es){\n        visible = es[0].isIntersecting;\n        if (visible) onScroll();\n      }, {rootMargin:'120px 0px'}).observe(band);\n    } else { visible = true; }\n\n    window.addEventListener('scroll', onScroll, {passive:true});\n    window.addEventListener('resize', onScroll, {passive:true});\n    paint();\n  })();\n\n  /* ================= Reveal ================= */\n  var els = ROOT.querySelectorAll('.rv');\n  if (!('IntersectionObserver' in window) || window.matchMedia('(prefers-reduced-motion: reduce)').matches){\n    els.forEach(function(el){ el.classList.add('in'); });\n  } else {\n    var io = new IntersectionObserver(function(entries){\n      entries.forEach(function(e){ if (e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } });\n    }, {rootMargin:'0px 0px -8% 0px', threshold:0.08});\n    els.forEach(function(el){ io.observe(el); });\n  }\n\n\n  /* ================= In-page anchors =================\n     The whole page lives inside a shadow root, and native fragment navigation\n     resolves ids against the DOCUMENT, not shadow trees. So `href=\"#the-plan\"`\n     found nothing, set the hash, and scrolled nowhere \u2014 the hero's secondary\n     button (\"See the 14 days\") looked dead on every page. Resolving the target\n     inside the root and scrolling it ourselves is the only way in.\n\n     The offset is measured live rather than hardcoded because .site-header is\n     position:fixed and changes height when it gains .is-stuck; a fixed number\n     would drop the section heading behind the bar at one of the two sizes. */\n  var REDUCE = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  /* Bracket notation on purpose: build-loader.py rewrites the literal\n     \"ROOT.querySelector(\" to \"ROOT.querySelector(\" so app.js resolves\n     inside the shadow tree. Here we deliberately want the OUTER document \u2014\n     embed.py strips our own .site-header on the Shopify build, so the only bar\n     that can cover the target there is the theme's, which lives outside the\n     root. Writing window.document would be rewritten too and break. */\n  var DOC = window['document'];\n\n  /* Whatever fixed or sticky bar is painted across the top of the viewport,\n     ours or the theme's. Hit-testing beats guessing at theme class names, and\n     it stays correct if the client reskins the header. */\n  function barOffset(){\n    var own = ROOT.querySelector('.site-header');\n    var off = own ? own.getBoundingClientRect().height : 0;\n    if (!DOC.elementsFromPoint) return off;\n    var stack = DOC.elementsFromPoint(Math.round((window.innerWidth || 800) / 2), 4);\n    for (var i = 0; i < stack.length; i++){\n      var el = stack[i];\n      if (el === DOC.body || el === DOC.documentElement) continue;\n      var pos = window.getComputedStyle(el).position;\n      if (pos !== 'fixed' && pos !== 'sticky') continue;\n      var r = el.getBoundingClientRect();\n      if (r.top <= 4 && r.bottom > off) off = r.bottom;\n    }\n    return off;\n  }\n\n  ROOT.addEventListener('click', function(ev){\n    var a = ev.target.closest && ev.target.closest('a[href^=\"#\"]');\n    if (!a) return;\n    if (ev.metaKey || ev.ctrlKey || ev.shiftKey || ev.altKey || ev.button) return;\n\n    var id = a.getAttribute('href').slice(1);\n    if (!id) return;\n    var target = ROOT.querySelector('#' + id);\n    if (!target) return;                       /* let the browser try, don't break it */\n\n    ev.preventDefault();\n\n    var y = target.getBoundingClientRect().top + (window.pageYOffset || 0) - barOffset() - 12;\n\n    window.scrollTo({top: y < 0 ? 0 : y, behavior: REDUCE ? 'auto' : 'smooth'});\n\n    /* Move focus so the jump is not sighted-only. tabindex is applied on the\n       fly and removed on blur, so the section never becomes a tab stop. */\n    if (!target.hasAttribute('tabindex')){\n      target.setAttribute('tabindex', '-1');\n      target.addEventListener('blur', function h(){\n        target.removeAttribute('tabindex');\n        target.removeEventListener('blur', h);\n      });\n    }\n    target.focus({preventScroll:true});\n  });\n\n  /* ================= FAQ ================= */\n  var faqs = ROOT.querySelectorAll('.faq details');\n  faqs.forEach(function(d){\n    d.addEventListener('toggle', function(){\n      if (d.open) faqs.forEach(function(o){ if (o !== d) o.open = false; });\n    });\n  });\n})();\n\n\n  /* Never leave the page blank: IntersectionObserver is suspended in background\n     tabs and throttled on slow loads, and .rv starts at opacity 0. */\n  setTimeout(function(){\n    ROOT.querySelectorAll('.rv').forEach(function(el){\n      if (el.getBoundingClientRect().top < (window.innerHeight || 800) * 1.25) el.classList.add('in');\n    });\n  }, 1200);\n  setTimeout(function(){\n    ROOT.querySelectorAll('.rv').forEach(function(el){ el.classList.add('in'); });\n  }, 4000);\n\n})();\n"],
  "mappings": "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",
  "names": ["d", "host", "s", "io", "onScroll"]
}
