:root{--wrap:1180px;--read:860px;--paper:#faf4ed;--paper-deep:#f2e9e1;--surface:#fffaf3;--ink:#1c1c1e;--muted:#5c5b60;--line:#d9d3ce;--line-strong:#b3a89e;--green:#2e7d32;--green-deep:#205d25;--green-soft:#ddefdc;--red:#b3261e;--warm:#e9a96d;--shadow:0 22px 60px rgba(38,40,33,.12);--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}*{box-sizing:border-box}[hidden]{display:none !important}html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:72px}body{margin:0;min-width:0;overflow-x:hidden;overflow-x:clip;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}a[href]{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{display:block;max-width:100%}[data-cg="nav"]{display:contents}.site-nav{position:sticky;z-index:30;top:0;border-bottom:1px solid rgba(221,226,210,.9);background:rgba(248,249,243,.94);backdrop-filter:blur(14px)}.nav-inner{width:min(var(--wrap),calc(100% - 48px));height:72px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:18px;font-weight:820;letter-spacing:-.02em;white-space:nowrap}.brand img,.brand svg{width:32px;height:32px;border-radius:9px}.nav-links{order:2;display:flex;align-items:center;justify-content:flex-end;gap:26px;margin-left:auto}.nav-links a{color:#3d443a;font-size:14px;font-weight:670;text-decoration:none}.nav-links a:hover{color:var(--green)}.nav-links a.nav-cta.button.primary,.nav-links a.nav-cta.button.primary:hover{color:#fff}.nav-cta,.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;border-radius:14px;border:1px solid var(--green);background:var(--green);color:#fff;font-weight:780;text-decoration:none;transition:background .16s,border-color .16s,transform .16s}.nav-cta{min-height:46px;padding-inline:18px;font-size:14px}.nav-cta:hover,.button.primary:hover{background:var(--green-deep);border-color:var(--green-deep)}.button.secondary{background:transparent;color:var(--ink);border-color:#b3a89e}.button.secondary:hover{border-color:var(--ink)}.button.white{background:var(--surface);color:var(--ink);border-color:var(--line);font-weight:800;font-size:16px}.button.white:hover{background:var(--surface);border-color:var(--green-deep)}.button.white .heart-ico{color:var(--green);stroke-width:3.5}.button .arrow{transition:transform .16s}.button:hover .arrow{transform:translateX(3px)}.menu-button{width:46px;height:46px;display:none;place-items:center;border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink)}.menu-button svg{width:21px;height:21px}main{overflow:hidden;overflow:clip}.hero{position:relative;width:min(1500px,calc(100% - 48px));margin:0 auto;padding:86px 0 88px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(56px,8vw,112px)}.hero::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;translate:-50% 0;background:linear-gradient(180deg,#ffffff 0%,#f5f9ea 55%,#eff8d9 100%);z-index:-1}.hero-copy{position:relative;z-index:1}.hero-title-break{display:none}h1{max-width:720px;margin:0;font-size:clamp(50px,6.2vw,104px);line-height:.98;letter-spacing:-.06em;font-weight:860}.hero-copy>p{max-width:590px;margin:28px 0 0;color:#45503f;font-size:clamp(18px,2vw,21px);line-height:1.55}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}.hero .hero-actions .button{min-width:252px;padding-inline:32px}.availability{display:flex;align-items:center;gap:10px;margin-top:24px;color:var(--muted);font-size:13px;line-height:1.4}.availability strong{color:var(--ink)}.availability .dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(46,125,50,.12)}.hero-visual{position:relative;min-height:590px;display:grid;place-items:center}.hero-visual::before{content:"";position:absolute;inset:8% -22% 6% 5%;background:var(--green-soft);border-radius:47% 53% 56% 44% / 42% 39% 61% 58%;transform:rotate(-4deg)}.phone{position:relative;width:min(368px,100%);padding:10px;border-radius:40px;border:1px solid #c2c8b6;background:#171719;box-shadow:var(--shadow);transform:rotate(2deg)}.phone::before{content:"";position:absolute;z-index:2;top:18px;left:50%;width:86px;height:23px;transform:translateX(-50%);border-radius:20px;background:#171719}.screen{position:relative;min-height:590px;overflow:hidden;border-radius:31px;background:var(--paper)}.mock-top{height:66px;display:flex;align-items:flex-end;justify-content:space-between;padding:0 20px 13px;border-bottom:1px solid var(--line);background:rgba(255,253,248,.92)}.mock-top strong{font-size:16px}.mock-top span{color:var(--green);font-size:12px;font-weight:800}.mock-content{padding:20px 17px 84px}.workout-context{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.workout-context p{margin:0;font-size:12px;color:var(--muted)}.program-chip{flex:none;padding:6px 9px;border-radius:8px;background:var(--green-soft);color:var(--green-deep);font-size:10px;font-weight:800}.mock-card{padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 6px 18px rgba(28,28,30,.05)}.mock-card+.mock-card{margin-top:12px}/* No-account page: hero pitch cards (angled mock-card style), feature grid,
   and the white template panel. */

.mock-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.mock-card h3{margin:0;font-size:15px;letter-spacing:-.02em}.mock-card-head span{color:var(--muted);font-size:11px}.hero-phones{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:100%}.hero-phones .phone{flex:none}.phone.front{z-index:2;transform:rotate(3deg)}.phone.front .screen{min-height:520px}.phone.back{width:min(320px,100%);margin-left:-28px;transform:rotate(-5deg);z-index:1}.phone.back .screen{min-height:540px}.hero-visual .suggestion-card+.suggestion-card{margin-top:10px}.hero-visual .mock-content>.suggestion-card{margin-bottom:12px}.hero-visual .exercise-name{overflow-wrap:anywhere}.set-tags{display:flex;gap:6px;margin:6px 0 2px 36px;padding:0}.set-tag{padding:3px 9px;border-radius:8px;background:var(--green-soft);color:var(--green-deep);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.mock-chart{display:block;width:100%;height:auto;margin-top:6px}.mock-chart .grid line{stroke:var(--line);stroke-width:1}.mock-chart text{fill:var(--muted);font-size:9px;font-weight:600}.mock-chart .bar{fill:var(--green);opacity:.85}html.js .mock-chart .bar{transform:scaleY(0);transform-box:fill-box;transform-origin:bottom;transition:transform .55s cubic-bezier(.2,.7,.3,1.2)}.mock-chart.in .bar{transform:scaleY(1)}@media (prefers-reduced-motion:reduce){.mock-chart .bar{transition:none;transform:none}}.hero-visual .overlay-stack{position:absolute;z-index:3;right:-6px;bottom:5%;display:grid;gap:12px;width:min(300px,78%)}.hero-visual:has(>.hero-scale){min-height:0}.hero-scale{--s:.55;position:relative;width:calc(880px * var(--s));height:calc(562px * var(--s));margin:0 auto}.hero-scale-inner{position:relative;width:880px;transform:scale(var(--s));transform-origin:0 0}@media (min-width:1400px) and (max-width:1547px){.hero-scale{--s:.71}}@media (min-width:1548px){.hero-scale{--s:.8}}.share-chip-card{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 14px 34px rgba(28,28,30,.14);transform:rotate(2deg)}.share-chip-card strong{margin-right:auto;font-size:20px;letter-spacing:-.02em}.share-btn{width:44px;height:44px;flex:none;display:grid;place-items:center;border:1.5px solid var(--line-strong);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;font-family:inherit}.share-btn svg{width:19px;height:19px}.start-pill{flex:none;border:0;border-radius:8px;background:var(--green);color:#fff;font-family:inherit;font-weight:800;font-size:16px;padding:12px 28px;cursor:pointer}.mini-chart-card{transform:rotate(-2deg)}.real-chart-card,.real-map-card{background:#fff;border-color:#d9d3ce}.real-chart-card .mock-card-head h3,.real-map-card .mock-card-head h3{color:#1c1c1e}.real-chart-card .mock-card-head span,.real-map-card .mock-card-head span{color:#656469}.real-chart-card .chart-kicker{color:#656469}.real-chart-card .chart-headline{min-height:0}.real-chart-card .chart-headline strong{color:#1c1c1e;font-size:22px}.real-chart-card [data-cg-chart] svg{display:block;width:100%;height:auto}.real-map-card .cg-map{margin-top:2px}.hero-1rm-card{background:#ffffff;border-color:#d9d3ce}.hero-1rm-card .chart-kicker{color:#656469}.hero-1rm-card .chart-headline strong{color:#1c1c1e}.hero-1rm-card .mock-card-head{margin-bottom:2px}.hero-visual .suggestion-card.applied .suggestion-change strong::after{content:none}.hero-1rm-card [data-cg-chart] svg>rect{fill:#ffffff}.hero-1rm-card [data-cg-chart="progress-line"] svg text,.hero-1rm-card [data-cg-chart="progress-line"] svg line{display:none}.blind-card{transform:rotate(1.5deg)}.blind-list{list-style:none;margin:4px 0 0;padding:0}.blind-list li{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:13px;font-weight:700}.blind-list li:first-child{border-top:0}.blind-list .blind-dot{width:11px;height:11px;flex:none;border-radius:50%;border:2px solid var(--red);opacity:.65}.blind-list em{margin-left:auto;color:var(--muted);font-style:normal;font-size:11px;font-weight:600}.muscle-map{display:block;width:100%;height:auto;margin-top:6px}.muscle-map .heat{fill:var(--green)}.muscle-map text{fill:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.exercise-name{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:800}.exercise-name .number{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--green-soft);color:var(--green-deep);font-size:11px}.set-head,.set-row{display:grid;grid-template-columns:28px 1fr 1fr 34px;align-items:center;gap:8px}.set-head{margin:14px 0 7px;color:var(--muted);font-size:9px;text-align:center}.set-row+.set-row{margin-top:7px}.set-num{color:var(--muted);font-size:11px;text-align:center}.set-value{height:33px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#ffffff;font-size:11px;font-weight:720}.set-check{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:var(--green);color:#fff;font-size:13px;font-weight:900}.set-check.open{border:1px solid var(--line);background:transparent;color:transparent}.phone .phone-nav{position:absolute;left:0;right:0;bottom:0;z-index:2}.phone .phone-nav .bottom-nav{display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px 10px;border-top:1px solid var(--line);background:var(--surface);border-radius:0 0 34px 34px}.phone .phone-nav .nav-item{min-height:50px;border:0;border-radius:12px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-family:inherit;font-size:10px;font-weight:700;line-height:1.25;cursor:default;padding:0}.phone .phone-nav .nav-item svg{width:24px;height:24px;stroke-width:2.5}.phone .phone-nav .nav-item.active{background:var(--green-soft);color:var(--green)}.section{width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:112px 0}.section.tight{padding-top:72px;padding-bottom:72px}.section-head{max-width:760px;margin-bottom:56px}.section-head h2{margin:0;font-size:clamp(36px,4.8vw,58px);line-height:1.05;letter-spacing:-.05em}.section-head p{max-width:620px;margin:18px 0 0;color:var(--muted);font-size:18px;line-height:1.55}.feature{display:grid;grid-template-columns:92px minmax(0,.72fr) minmax(320px,1fr);gap:28px;align-items:start;padding:36px 0;border-bottom:1px solid var(--line)}.feature h3{margin:0;font-size:clamp(24px,3vw,34px);letter-spacing:-.04em}.prog-points{margin:22px 0 0;padding:0;list-style:none}.prog-points li{padding:12px 0;border-top:1px solid var(--line);color:var(--muted);font-size:15px;line-height:1.6}.prog-points li:last-child{border-bottom:1px solid var(--line)}.prog-points strong{color:var(--ink)}footer{border-top:1px solid var(--line);background:var(--surface)}.footer-inner{width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:54px 0 42px;display:grid;grid-template-columns:1.1fr 2fr;gap:44px;align-items:start}.footer-brand{display:block;font-size:20px;font-weight:830;letter-spacing:-.025em;text-decoration:none;color:var(--ink)}.footer-train{margin-top:16px}.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.footer-col h3{margin:0 0 10px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.footer-col a{display:flex;align-items:center;gap:6px;padding:5px 0;color:#49523f;font-size:13px;font-weight:680;text-decoration:none}.footer-col a:hover{color:var(--green-deep);text-decoration:underline;text-underline-offset:4px}.footer-base{width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:18px 0 26px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.heart-ico{width:15px;height:15px;flex:none;color:var(--green)}.nav-controls{order:3;display:none;align-items:center;gap:10px}.subpage{width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:72px 0 112px}.subpage h1{max-width:760px;font-size:clamp(42px,7vw,68px)}.subpage-lede{max-width:700px;margin:22px 0 48px;color:var(--muted);font-size:19px;line-height:1.6}.policy-block{padding:28px 0;border-top:1px solid var(--line)}.policy-block:last-child{border-bottom:1px solid var(--line)}.policy-block h2{margin:0 0 11px;font-size:25px;letter-spacing:-.03em}.policy-block p,.policy-block li{color:var(--muted);font-size:16px;line-height:1.65}.policy-block p{margin:0}.policy-updated{color:var(--muted);font-size:13px;margin:-34px 0 20px}.policy-more{margin:38px 0 2px;font-size:21px;letter-spacing:-.02em}.policy-block ul,.policy-block ol{margin:0;padding-left:22px}.policy-block li+li{margin-top:8px}.nav-current{color:var(--muted);font-size:14px;font-weight:670;cursor:default}.page-kicker,.example-workouts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.examples-section{margin-top:64px}.examples-section>.example-workouts{margin-top:40px}.ex-lead{display:inline-flex;align-items:center;gap:8px}.program-pill{margin:0;padding:3px 9px;border-radius:8px;background:var(--green-soft);color:var(--green-deep);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.workout-example{display:flex;flex-direction:column;min-width:0;padding:24px 24px 12px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.example-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;color:var(--green-deep);font-size:11px;font-weight:760}.workout-example h2{margin:20px 0 8px;font-size:24px;letter-spacing:-.035em}.workout-example>p{flex:1;margin:0;color:var(--muted);font-size:14px;line-height:1.55}.workout-example ol{margin:22px 0 24px;padding:0;border-top:1px solid var(--line);list-style:none}.workout-example li{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:13px}.workout-example li strong{color:var(--ink);white-space:nowrap}.switcher,.mode-toggle{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--paper-deep)}.switcher{margin-bottom:22px}.switch-tab,.mode-button{min-height:40px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:760;cursor:pointer}.switch-tab.active,.mode-button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(28,28,30,.08)}.demo-suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.training-note{margin-top:20px;padding:24px 26px;border-radius:18px;background:var(--green-soft)}.training-note strong{color:var(--green-deep)}.training-note p{margin:7px 0 0;color:var(--ink);line-height:1.55}.credit-list{border-top:1px solid var(--line)}.credit-list article{display:grid;grid-template-columns:minmax(180px,.65fr) 1fr;gap:30px;padding:24px 0;border-bottom:1px solid var(--line)}.credit-list h2{margin:0;font-size:21px}.credit-list h2 a{color:inherit;text-decoration:none}.credit-list h2 a:hover{text-decoration:underline;text-underline-offset:3px}.credit-list p{margin:0;color:var(--muted);line-height:1.55}:focus-visible{outline:3px solid var(--green);outline-offset:3px}@media (max-width:1150px) and (min-width:601px){.hero-phones{zoom:.72}.hero-scale{--s:.47}.hero-scale .hero-phones{zoom:1}}@media (max-width:900px){.nav-inner{width:min(100% - 32px,760px)}.menu-button{display:grid}.nav-controls{display:flex;margin-left:auto}.nav-links{position:absolute;top:72px;left:14px;right:14px;display:none;justify-content:stretch;align-items:stretch;padding:10px 16px 16px;border:1px solid var(--line);border-radius:0 0 16px 16px;background:var(--paper);box-shadow:0 18px 32px rgba(28,28,30,.12);text-align:left}.nav-links.open{display:grid;gap:0}.nav-links a:not(.nav-cta),.nav-links .nav-current{min-height:46px;display:flex;align-items:center;justify-content:flex-start;padding:0 4px;border-bottom:1px solid var(--line)}.nav-links .nav-current{color:var(--muted)}.nav-links .nav-cta{margin-top:10px;padding-inline:14px;justify-content:center}.nav-links .nav-cta.button.primary{color:#fff}.hero{grid-template-columns:minmax(0,1fr);width:min(100% - 40px,720px);padding-top:64px;gap:58px}.hero-copy{text-align:center}.hero-copy h1,.hero-copy>p{margin-inline:auto}.eyebrow,.hero-actions,.availability{justify-content:center}.hero-visual{min-height:570px}.section,.migration-inner,.pathways{width:min(100% - 40px,720px)}.feature{grid-template-columns:58px 1fr}.example-workouts{grid-template-columns:1fr}}@media (max-width:600px){html{scroll-padding-top:64px}.nav-inner{height:64px;width:calc(100% - 28px)}.brand{font-size:16px}.brand img,.brand svg{width:29px;height:29px}.nav-links{top:64px}.hero{width:calc(100% - 32px);padding:48px 0 62px}h1{font-size:clamp(46px,13.8vw,64px);max-width:none}.hero-copy h1{font-size:clamp(38px,12vw,60px)}.hero-title-break{display:inline}.hero-copy>p{font-size:17px}.hero-actions{display:grid;gap:10px}.button{width:100%}.availability{align-items:flex-start;text-align:left}.availability .dot{margin-top:5px}.hero-visual{min-height:0;width:100%;padding:14px 0 26px}.hero-scale{width:100%;height:auto;min-width:0;position:relative;display:flex;flex-direction:column;align-items:center}.hero-scale-inner{display:contents}.hero-phones{width:max-content;max-width:none;margin:0;zoom:.5}.phone.front{width:368px;transform:rotate(0)}.phone.back{width:320px;margin-left:-28px;transform:rotate(-5deg)}.phone.back .screen{min-height:540px}.screen{min-height:590px}.hero-visual .overlay-stack{position:static;width:min(320px,100%);margin:16px auto 0}.hero-visual .phone-nav .nav-label{display:none}@supports not (zoom:1){.hero-phones{width:100%}.phone.back{display:none}.phone.front{width:min(334px,calc(100vw - 42px));margin:0 auto}}.hero-visual::before{inset:6% -30% 8% -12%}.section{width:calc(100% - 44px);padding:82px 0}.section.tight{padding-top:36px;padding-bottom:48px}.section-head{margin-bottom:40px}.section-head p{font-size:16px}.feature{grid-template-columns:42px 1fr;gap:16px;padding:32px 0}.subpage{width:calc(100% - 32px);padding:48px 0 82px}.subpage-lede{font-size:17px;margin-bottom:36px}.switcher,.mode-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.switch-tab,.mode-button{min-width:0;padding-inline:10px}.credit-list article{grid-template-columns:1fr;gap:8px}.footer-inner,.footer-base{width:calc(100% - 32px)}.footer-inner{grid-template-columns:1fr;align-items:start;gap:32px}.footer-cols{grid-template-columns:1fr 1fr;gap:26px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none !important;animation:none !important}}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 30px;align-items:center}.filter-chip{min-height:42px;padding:0 17px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:13px;font-weight:760;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.filter-chip:hover{border-color:var(--green);color:var(--green-deep)}.filter-chip.active{background:var(--green);border-color:var(--green);color:#fff}.workout-example[hidden]{display:none}.skeleton-card{pointer-events:none}.skeleton-card .sk-bar{height:13px;border-radius:6px;margin-bottom:10px}.skeleton-card .sk-title{height:26px;margin:18px 0 12px;border-radius:8px}.skeleton-card .sk-meta{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.skeleton-card .sk-meta .sk-bar{margin-bottom:0}.skeleton-card .sk-toggle{height:14px;border-radius:6px;margin:22px 0}.skeleton-card .sk-cta{display:flex;gap:10px;margin-top:auto;padding-top:22px}.skeleton-card .sk-btn{flex:1;height:48px;border-radius:14px}.sk{background:linear-gradient(90deg,var(--line) 25%,var(--paper-deep) 50%,var(--line) 75%);background-size:200% 100%;animation:sk-shimmer 1.3s linear infinite}.sk.w40{width:40%}.sk.w25{width:25%}.sk.w70{width:70%}.sk.w85{width:85%}.sk.w95{width:95%}@keyframes sk-shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}.kind-toggle{margin-left:auto;margin-bottom:0}@media (max-width:900px){.switcher.kind-toggle{display:none}}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:40px}.pagination[hidden]{display:none}.page-btn{min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:760;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.page-btn:hover:not(:disabled){border-color:var(--green);color:var(--green-deep)}.page-btn:disabled{opacity:.4;cursor:default}.page-status{font-size:14px;color:var(--muted)}.cta-hairline{border:0;border-top:1px solid var(--line);margin:60px 0 0}.build-cta{text-align:center;padding:48px 0 16px}.build-cta h2{margin:0 0 12px}.build-cta p{margin:0 auto;max-width:560px;color:var(--muted)}.build-cta-actions{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:26px}.action-divider{color:var(--muted);font-size:14px}.learn-how{font-size:16px}.learn-how strong{font-weight:760;color:var(--green-deep)}.card-cta{display:flex;gap:10px;margin-top:auto;padding-top:22px}.card-cta .card-start{flex:3 1 0}.card-cta .card-copy{flex:2 1 0;font-size:14px}.card-cta .button{width:auto}.switcher{gap:4px;padding:4px;border-radius:12px}.switch-tab{min-height:44px;padding:0 18px;font-size:14px;border-radius:9px}@media (max-width:900px){.build-cta-actions{flex-direction:column;gap:0}.build-cta-actions .button.primary{width:100%}.action-divider{display:flex;align-items:center;gap:12px;width:100%;margin:22px 0}.action-divider::before,.action-divider::after{content:"";flex:1;border-top:1px solid var(--line)}.learn-how{padding:2px 0 6px}}@media (max-width:600px){.switcher{display:flex;overflow-x:auto;width:100%}.switch-tab{flex:1 0 auto;white-space:nowrap}}.workout-example h2 a{color:inherit;text-decoration:none}.workout-example h2 a:hover{color:var(--green-deep);text-decoration:underline;text-underline-offset:3px}.exercise-list{margin:18px 0 0}.exercise-list summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;border-top:1px solid var(--line);cursor:pointer;color:var(--green-deep);font-size:13px;font-weight:760;list-style:none}.exercise-list summary::-webkit-details-marker{display:none}.exercise-list summary::after{content:"+";font-size:18px;font-weight:700;color:var(--green)}.exercise-list[open] summary::after{content:"\2212"}.workout-example .exercise-list .exercise-items{margin:0;border-top:none}.detail-back{margin:0 0 20px;font-size:14px}.detail-back a{color:var(--green-deep);font-weight:700;text-decoration:none}.detail-back a:hover{text-decoration:underline;text-underline-offset:3px}.detail-h2{margin:42px 0 6px;font-size:22px;letter-spacing:-.03em}.exercise-items{margin:0 0 26px;padding:0;border-top:1px solid var(--line);list-style:none;max-width:660px}.exercise-items li{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14px}.exercise-items li strong{color:var(--ink);white-space:nowrap}.detail-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.bug-form{display:grid;gap:18px;max-width:660px;margin-top:30px}.bug-form label{display:grid;gap:8px;font-size:14px;font-weight:700}.bug-form .form-hint{font-weight:400;color:var(--muted);font-size:13px}.bug-form input,.bug-form textarea{font:inherit;font-weight:400;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);width:100%;box-sizing:border-box}.bug-form textarea{min-height:110px;resize:vertical}.bug-form input:focus,.bug-form textarea:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}.email-alt{margin-top:34px;padding-top:26px;border-top:1px solid var(--line);max-width:660px}.email-alt p{margin:0 0 14px;color:var(--muted);font-size:14px;line-height:1.55}.email-alt p strong{color:var(--ink)}.lb-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.lb-modal[hidden]{display:none}.lb-modal-backdrop{position:absolute;inset:0;background:rgba(20,24,20,.55)}.lb-modal-card{position:relative;background:var(--paper);color:var(--ink);border-radius:18px;width:100%;max-width:660px;max-height:92vh;max-height:92dvh;overflow-y:auto;padding:30px 28px 28px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.lb-modal-card h2{margin:0 44px 6px 0;font-size:24px}.lb-modal-sub{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.55}.lb-modal-alt{margin:14px 0 0;color:var(--muted);font-size:14px;line-height:1.55}.lb-modal-alt a{color:var(--green-deep);font-weight:700}.lb-modal-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:22px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.lb-modal-close:hover{background:var(--paper-deep)}body.modal-open{overflow:hidden}.program-day-list{margin:0 0 26px;padding:0;list-style:none;max-width:660px;border-top:1px solid var(--line)}.program-day-list li{padding:14px 0;border-bottom:1px solid var(--line)}.program-day-list li a{font-weight:700;font-size:17px}.program-day-list li p{margin:6px 0 0;color:var(--muted);font-size:14px}.hero-visual .demo-suggestions{position:relative;z-index:1;width:100%;max-width:340px}.features{width:min(1120px,calc(100% - 48px));margin:20px auto 8px}.features .feature{display:grid;grid-template-columns:minmax(0,1fr) 272px;gap:44px;align-items:center;margin:64px 0}.features .feature:nth-child(even){grid-template-columns:272px minmax(0,1fr)}@media (max-width:900px){.features .feature,.features .feature:nth-child(even){grid-template-columns:1fr;gap:24px}.features .feature>*{min-width:0}}.pill{display:inline-block;padding:4px 12px;border-radius:8px;background:var(--green-soft);color:var(--green-deep);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.credit-note{margin:26px 0;max-width:680px}.credit-note a{color:var(--green-deep);font-weight:700;text-underline-offset:3px}.subtle-copy{display:inline-flex;align-items:center;background:none;border:none;padding:12px 6px;color:var(--green-deep);font:inherit;font-size:14px;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.subtle-copy:hover{color:var(--green)}.detail-cta{align-items:center}.cg-map{width:100%}.cg-map svg{display:block;width:100%;height:auto}.cg-map [data-muscle]{stroke:rgba(28,28,30,.28);stroke-width:.55}.cg-map .heat-0{fill:#e4e8da}.cg-map .heat-1{fill:#ddefdc}.cg-map .heat-2{fill:#b7dfb9}.cg-map .heat-3{fill:#86c98b}.cg-map .heat-4{fill:#5da464}.cg-map .heat-5{fill:#2e7d32}.cg-map .heat-worked{fill:#5da464}.live-chip{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:6px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:700;white-space:nowrap}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,100%{opacity:1}50%{opacity:.3}}@media (prefers-reduced-motion:reduce){.live-dot{animation:none}}.cg-chart{padding:18px 14px 8px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 14px 36px rgba(60,40,20,.10)}.cg-chart svg{display:block;width:100%;height:auto}.cg-logs{border:1px solid var(--line);border-radius:20px;background:var(--surface);overflow:hidden}.cg-log-items{margin:0;padding:0;list-style:none}.cg-log-items li{padding:15px 20px;border-bottom:1px solid var(--line)}.cg-log-items li:last-child{border-bottom:0}.cg-log-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cg-log-top strong{font-size:15px;letter-spacing:-.01em}.cg-log-date{flex:none;color:var(--muted);font-size:12px;font-weight:700}.cg-log-meta{margin-top:4px;color:var(--muted);font-size:13px}.muscle-pills{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}.muscle-pills li{padding:7px 13px;border-radius:8px;background:var(--green-soft);color:var(--green-deep);font-size:12px;font-weight:750}.detail-map{max-width:560px;margin-top:26px}.progress-demo{border:1px solid var(--line);border-radius:22px;background:#fff;padding:24px 22px 10px;box-shadow:0 18px 44px rgba(60,40,20,.10)}.progress-block{padding:20px 0 6px;border-top:1px solid var(--line)}.progress-block:first-of-type{border-top:0}.chart-kicker{margin:14px 0 2px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.chart-kicker:first-child{margin-top:0}.chart-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 0;flex-wrap:wrap}.chart-head-row .chart-kicker{margin:0}.chart-head-text{min-width:0}.chart-head-text .chart-headline{margin:2px 0 6px}.chart-headline{margin:2px 0 6px;min-height:34px;display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}.chart-headline strong{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}.chart-headline span{font-size:14px;font-weight:600;color:var(--green)}.mini-segmented{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--line);border-radius:12px;background:var(--surface);flex:none}.mini-segmented button{min-height:44px;padding:0 14px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:12px;font-weight:750;cursor:pointer}.mini-segmented button[aria-pressed="true"]{background:var(--green-soft);color:var(--green)}.progress-block [data-cg-chart] svg{display:block;width:100%;height:auto}.wu-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px}.wu-row{display:flex;align-items:center;gap:7px;margin-top:10px}.wu-num{width:22px;height:22px;border-radius:50%;background:var(--paper-deep);color:var(--muted);font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:none}@media (max-width:900px){.nav-links{max-height:calc(100vh - 88px);max-height:calc(100dvh - 88px);overflow-y:auto}.features .feature{padding:8px 0}}@media (max-width:600px){.features .feature{gap:30px}.cg-chart{padding:22px 16px 12px}.cg-log-items li{padding:18px 22px}}.gs-frag{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;max-width:340px;width:100%;margin:0 auto;box-shadow:var(--shadow);font-size:14px}.gs-frag+.gs-frag{margin-top:14px}.gs-frag .gs-pad{padding:14px 14px 16px;background:var(--paper)}.gs-frag.wide{max-width:none}.gs-frag .workout-start-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gs-frag .start-option{min-height:82px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;font-family:inherit;color:var(--ink)}.gs-frag .start-option strong{display:block;margin-bottom:4px;font-size:14px;color:var(--ink)}.gs-frag .start-option span{color:var(--muted);font-size:11px;line-height:1.4}.gs-frag .start-option.primary{border-color:var(--green);background:var(--green-soft)}.gs-frag .picker-search{width:100%;height:44px;margin-bottom:10px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:14px;font-family:inherit}.gs-frag .picker-item{width:100%;min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;font-family:inherit;color:var(--ink)}.gs-frag .picker-item+.picker-item{margin-top:8px}.gs-frag .picker-item strong{display:block;margin-bottom:4px;color:var(--ink);font-size:14px}.gs-frag .picker-item>span:first-child>span{color:var(--muted);font-size:11px;text-transform:capitalize}.gs-frag .picker-item .picker-state{color:var(--green);font-size:20px;font-weight:800}.gs-frag .tag-picker-options{display:flex;flex-wrap:wrap;gap:8px}.gs-frag .form-pill{min-height:40px;padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;text-transform:capitalize;font-family:inherit}.gs-frag .form-pill[aria-pressed="true"]{border-color:var(--green);background:var(--green-soft);color:var(--green);font-weight:700}.gs-frag .workout-actions{display:flex;flex-wrap:wrap;gap:9px}.gs-frag .workout-actions button{flex:1}.gs-frag .primary-button,.gs-frag .secondary-button{min-height:44px;padding:0 15px;border-radius:10px;font-weight:750;white-space:nowrap;font-family:inherit;font-size:14.5px}.gs-frag .primary-button{border:1px solid var(--green);background:var(--green);color:#fff}.gs-frag .secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--ink)}.gs-frag .stats-panel{padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-family:inherit;color:var(--ink);text-align:left;width:100%}.gs-frag .stats-panel strong{display:block;font-size:30px;letter-spacing:-.04em;color:var(--ink)}.gs-frag .stats-panel span{color:var(--muted);font-size:12px}.gs-frag .stats-panel .stats-go{display:block;margin-top:8px;color:var(--green);font-size:13px;font-weight:700}.gs-frag .detail-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.gs-frag .detail-title-row h2{margin:0;font-size:20px;letter-spacing:-.01em;color:var(--ink)}.gs-frag .title-actions{display:flex;align-items:center;gap:8px}.gs-frag .start-inline-button{flex:none;min-height:44px;padding:0 24px;border:0;border-radius:10px;background:var(--green);color:#fff;font-size:15px;font-weight:800;font-family:inherit}.gs-frag .icon-button{flex:none;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink)}.gs-frag .icon-button svg{width:20px;height:20px}.gs-frag .blindspot-section{margin-top:0}.gs-frag .tag-row{display:flex;flex-wrap:wrap;gap:7px}.gs-frag .tag{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:8px;background:var(--surface);color:var(--ink);font-size:11px;text-transform:capitalize}.gs-frag .gs-frag .new-template-button{display:block;width:100%;min-height:44px;margin-top:10px;border:1px dashed var(--line);border-radius:12px;background:transparent;color:var(--green);font-size:14px;font-weight:700;font-family:inherit}.gs-frag .program-workout-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.gs-frag .program-workout-row strong{display:block;font-size:14px;color:var(--ink)}.gs-frag .program-workout-row span span{color:var(--muted);font-size:11px}.gs-phone{background:var(--surface);border:1px solid var(--line);border-radius:24px;overflow:hidden;max-width:340px;width:100%;margin:0 auto;box-shadow:var(--shadow);font-size:14px}.gs-label{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}.gs-label:first-child{margin-top:0}.gs-input{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px}.gs-input.short{display:inline-block;min-width:76px;text-align:center}.gs-pills{display:flex;flex-wrap:wrap;gap:8px}.gs-pill{font-size:12.5px;font-weight:600;padding:8px 12px;border-radius:20px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}.gs-pill.active{border-color:var(--green);color:var(--green);background:var(--green-soft);font-weight:800}.gs-sugg-change{display:block;margin-top:6px;font-size:13.5px;color:var(--muted)}.gs-sugg-applied{display:block;margin-top:6px;font-size:13.5px;font-weight:800;color:var(--green)}@media (max-width:760px){.gs-phone{max-width:320px}}.gs-phone .top-bar,.gs-frag .top-bar{position:static;display:flex;align-items:center;justify-content:space-between;min-height:54px;padding:0 8px;border-bottom:1px solid var(--line);background:var(--surface)}.gs-phone .top-bar-left,.gs-frag .top-bar-left,.gs-phone .top-bar-right,.gs-frag .top-bar-right{display:flex;align-items:center;gap:4px;min-width:76px}.gs-phone .top-bar-right,.gs-frag .top-bar-right{justify-content:flex-end}.gs-phone .top-bar-title,.gs-frag .top-bar-title{margin:0;font-size:20px;font-weight:750;letter-spacing:-.01em}.gs-phone .top-bar-btn,.gs-frag .top-bar-btn{width:40px;height:40px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:default}.gs-phone .top-bar-btn svg,.gs-frag .top-bar-btn svg{width:22px;height:22px}.gs-phone .bottom-nav,.gs-frag .bottom-nav{position:static;display:grid;grid-template-columns:repeat(5,1fr);padding:6px 8px 10px;border-top:1px solid var(--line);background:var(--surface)}.gs-phone .nav-item,.gs-frag .nav-item{min-height:50px;border:0;border-radius:12px;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:10px;font-weight:700;line-height:1.25;cursor:default;padding:0}.gs-phone .nav-item svg,.gs-frag .nav-item svg{width:24px;height:24px;stroke-width:2.5}.gs-phone .nav-item,.gs-frag .nav-item.active{background:var(--green-soft);color:var(--green)}.gs-phone .live-chip,.gs-frag .live-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:5px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}.gs-phone .live-dot,.gs-frag .live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:live-pulse 1.6s ease-in-out infinite;flex:none}@keyframes live-pulse{0%,100%{opacity:1}50%{opacity:.3}}.live-dot-fly{position:fixed;z-index:9999;width:8px;height:8px;border-radius:50%;background:var(--green);pointer-events:none;transition:transform 420ms cubic-bezier(.25,.8,.3,1),opacity 200ms ease}.gs-phone .log-set,.gs-frag .log-set{display:grid;grid-template-columns:34px repeat(3,minmax(0,1fr)) 44px;gap:6px;align-items:center;padding:10px 0}.gs-phone .log-set+.log-set,.gs-frag .log-set+.log-set{border-top:1px solid var(--line)}.gs-phone .log-set-number,.gs-frag .log-set-number{width:34px;min-height:40px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font-size:13px;font-weight:800;cursor:default;padding:0}.gs-phone .log-labels,.gs-frag .log-labels{display:grid;grid-template-columns:34px repeat(3,minmax(0,1fr)) 44px;gap:6px;font-size:10px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);padding:0 0 2px}.gs-phone .log-input,.gs-frag .log-input{width:100%;height:42px;padding:0 8px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font-size:15px;font-weight:700;font-family:inherit;text-align:center}.gs-phone .log-input,.gs-frag .log-input::placeholder{color:var(--muted);font-weight:500;font-size:12.5px}.gs-phone .complete-set,.gs-frag .complete-set{width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;cursor:default;padding:0}.gs-phone .complete-set svg,.gs-frag .complete-set svg{width:27px;height:27px}.gs-phone .complete-set .box,.gs-frag .complete-set .box{fill:none;stroke:var(--muted);stroke-width:1.8}.gs-phone .complete-set .tick,.gs-frag .complete-set .tick{fill:none;stroke:transparent;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.gs-phone .complete-set,.gs-frag .complete-set[aria-pressed="true"] .box{fill:var(--green);stroke:var(--green)}.gs-phone .complete-set,.gs-frag .complete-set[aria-pressed="true"] .tick{stroke:#fff}.math-block{background:var(--paper-deep);border:1px solid var(--line);border-radius:20px;padding:26px 24px;margin:18px 0}.math-formula{font-size:27px;font-weight:850;letter-spacing:-.02em;line-height:1.35;font-variant-numeric:tabular-nums}.math-formula .op{color:var(--muted);font-weight:700}.math-formula .hl{color:var(--green)}.math-def{margin-top:10px;font-size:14px;color:var(--muted);line-height:1.6}.math-def strong{color:var(--ink)}.adv-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}.adv-card h3{margin:0 0 6px;font-size:15px}.adv-card p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.6}.adv-card p strong{color:var(--ink)}.gs-kicker{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin:0 0 8px}.gs-pill.dashed{border-style:dashed}.gs-phone .live-title-dot,.gs-frag .live-title-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-left:7px;vertical-align:2px}.gs-phone .live-title-dot,.gs-frag .live-title-dot[hidden]{display:none}.gs-phone .nav-workout svg,.gs-frag .nav-workout svg{transform:rotate(-16deg)}.blindspot-section{margin-top:20px}.blindspot-label{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 12px;border-radius:8px;background:var(--paper-deep);color:var(--ink);font-size:12.5px;text-transform:capitalize}.tag.blindspot-tag{background:transparent;border:1px dashed var(--line);color:var(--muted);font-weight:600}.muscle-volume-row{display:grid;grid-template-columns:minmax(88px,.6fr) minmax(100px,1fr) auto;gap:10px;align-items:center;width:100%;padding:9px 2px;border:0;background:transparent;color:var(--ink);font-family:inherit;font-size:13.5px;text-align:left;cursor:default}.muscle-volume-row+.muscle-volume-row{border-top:1px solid var(--line)}.analysis-label{text-transform:capitalize;font-weight:700}.analysis-track{height:8px;border-radius:999px;background:var(--paper-deep);overflow:hidden}.analysis-fill{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width 320ms ease}.analysis-value{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12.5px}.donate-card{margin:44px auto 8px;max-width:920px;padding:30px 28px;border:1px solid var(--line);border-radius:22px;background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.donate-card .button.primary{min-width:172px;text-align:center}.donate-hr{border:0;border-top:1px solid var(--line);margin:52px 0 0}.donate-card h2{margin:0 0 6px;font-size:22px;letter-spacing:-.01em}.donate-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.6;max-width:440px}.release-notes .release-card{margin:0 0 16px;padding:22px 24px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.release-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.version-pill{display:inline-block;font-weight:700;font-size:15px;letter-spacing:-.01em;padding:4px 14px;border-radius:8px;background:var(--green-soft);color:var(--green-deep)}.release-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);border:1px solid var(--line-strong);border-radius:8px;padding:3px 10px}.release-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.release-list li{position:relative;padding-left:26px;line-height:1.55}.release-list li::before{content:"\2713";position:absolute;left:4px;color:var(--green);font-weight:700}.roadmap-title{margin:42px 0 16px}.roadmap-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.roadmap-list li{position:relative;padding:11px 16px 11px 42px;border:1px solid var(--line);border-radius:14px;line-height:1.55}.roadmap-list li::before{content:"\2192";position:absolute;left:17px;top:11px;color:var(--muted)}.demo-share{--sh-surface:#ffffff;--sh-surface-2:#f2e9e1;--sh-ink:#1c1c1e;--sh-muted:#656469;--sh-line:#d9d3ce;--sh-accent:#2e7d32;--sh-accent-soft:#ddefdc;--sh-on-accent:#ffffff;max-width:560px;margin:22px auto 0;color:var(--sh-ink)}.demo-share .completed-card{margin:0;padding:26px 22px;border:1px solid var(--sh-line);border-radius:18px;background:var(--sh-surface);box-shadow:0 14px 34px rgba(28,28,30,.08)}.demo-share .continue-kicker{display:block;margin-bottom:5px;color:var(--sh-accent);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.demo-share .detail-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.demo-share .detail-title-row h2{margin:0 0 6px;font-size:26px;font-weight:800;letter-spacing:-.025em;line-height:1.08}.demo-share .share-context{margin:0 0 10px;color:var(--sh-muted);font-size:13px}.demo-share .completed-meta{margin:0 0 12px;color:var(--sh-muted);font-size:13px}.demo-share .tag-row{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.demo-share .tag{display:inline-flex;align-items:center;min-height:24px;padding:3px 10px;border-radius:8px;background:var(--sh-surface-2);color:var(--sh-ink);font-size:11px;text-transform:capitalize}.demo-share .tag.primary{background:var(--sh-accent-soft);color:var(--sh-accent);font-weight:700;border:1px solid var(--sh-accent)}.demo-share-head{margin:0 0 10px}.demo-share-head h3{margin:0;color:var(--sh-muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.demo-share .picker-item{width:100%;padding:10px 12px;border:1px solid var(--sh-line);border-radius:10px;background:var(--sh-surface);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:8px}.demo-share .picker-item>span:first-child{display:grid;gap:2px}.demo-share .picker-item strong{font-size:15px;font-weight:700}.demo-share .picker-item>span:first-child>span{color:var(--sh-muted);font-size:11px;text-transform:capitalize}.demo-share .share-actions{display:grid;gap:2px;justify-items:center;margin-top:14px}.demo-share .primary-button{width:100%;min-height:52px;border:1px solid var(--sh-accent);border-radius:12px;background:var(--sh-accent);color:var(--sh-on-accent);font-size:16px;font-weight:800;box-shadow:0 4px 12px rgba(28,28,30,.10)}.demo-share .section-note{margin:10px 0 0;color:var(--sh-muted);font-size:12px;text-align:center}@media (max-width:760px){.math-block{padding:24px 20px;margin:22px 0}.math-formula{font-size:23px}.adv-card{padding:20px 18px}.donate-card{margin:32px 20px 8px;padding:24px 20px}.donate-card .button.primary{min-width:0}.release-notes .release-card{padding:18px 18px}.roadmap-list li{padding:10px 14px 10px 38px}.roadmap-list li::before{left:14px;top:10px}}.suggestion-card{width:100%;min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.03);color:var(--ink);font-family:inherit}button.suggestion-card{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}button.suggestion-card:hover{border-color:var(--green);box-shadow:0 3px 10px rgba(0,0,0,.06)}.suggestion-card.suggestion-static{cursor:default}.suggestion-card.applied{border-color:var(--green);background:color-mix(in srgb,var(--green) 8%,transparent)}.suggestion-name{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.suggestion-name span:not(.suggestion-exercise){flex:none;padding:4px 11px;border-radius:8px;background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:none;white-space:nowrap}.suggestion-name .suggestion-exercise{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-change{display:flex;align-items:baseline;gap:10px;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.suggestion-change strong{color:var(--ink);font-size:19px;font-weight:800;letter-spacing:-.01em}.demo-suggestion{margin:0 0 14px}.demo-suggestion:last-child{margin-bottom:0}.demo-basis{margin:6px 2px 0;color:var(--muted);font-size:12.5px;line-height:1.5}.features .feature .progress-demo{max-width:640px;margin-top:26px}.analysis-panel{padding:18px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}.analysis-panel h2{margin:0 0 4px;font-size:17px;letter-spacing:-.02em}.analysis-panel .section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;max-width:none;margin:0 0 12px}.analysis-panel .section-head p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.45;max-width:none}.analysis-panel .mini-segmented{flex:none}.analysis-panel .muscle-volume-list{display:grid;gap:2px}.analysis-panel .muscle-volume-row{display:grid;grid-template-columns:minmax(82px,.65fr) minmax(100px,1fr) auto 14px;gap:9px;align-items:center;width:100%;padding:9px 2px;border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;text-align:left;cursor:pointer}.analysis-panel .muscle-volume-group+.muscle-volume-group{border-top:1px solid var(--line)}.analysis-panel .drill-chevron{color:var(--muted);font-size:16px;line-height:1;transition:transform .18s ease;justify-self:end}.analysis-panel .muscle-volume-row.is-open .drill-chevron{transform:rotate(90deg);color:var(--green)}.analysis-panel .muscle-drilldown{padding:2px 2px 10px 6px;display:grid;gap:2px}.analysis-panel .drilldown-row{display:grid;grid-template-columns:1fr auto 14px;gap:8px;align-items:center;width:100%;padding:8px 6px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-size:13px;text-align:left;cursor:pointer}.analysis-panel .drilldown-row:active{background:var(--paper-deep)}.analysis-panel .drilldown-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analysis-panel .drilldown-value{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.analysis-panel .drilldown-row>span[aria-hidden]{color:var(--muted)}.appfrag{--radius-md:20px;--radius-lg:22px;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--shadow-soft:0 6px 18px rgba(28,28,30,.07);--on-accent:#ffffff;--ink-strong:#000000;--focus-ring:rgba(46,125,50,.22);--rose-soft:#f5dfdc;--warning:#b86b20;--bg:var(--surface);--switch-track:#b9b0bd;--shadow-color:rgba(28,28,30,.10);font-family:var(--font-sans);margin:14px 0 4px}.appfrag{pointer-events:none}.appfrag input{pointer-events:none}.appfrag .workout-exercise{padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface)}.appfrag .workout-exercise.exercise-accordion{padding:0}.appfrag .exercise-accordion-head{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:15px 18px;cursor:pointer;list-style:none}.appfrag .exercise-accordion-head::-webkit-details-marker{display:none}.appfrag .exercise-accordion-title{display:grid;gap:3px;min-width:0}.appfrag .exercise-accordion-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;letter-spacing:-.01em}.appfrag .exercise-accordion-title small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.appfrag .exercise-accordion-chevron{flex:none;color:var(--muted);font-size:20px;line-height:1;transition:transform .18s ease}.appfrag .exercise-accordion.workout-exercise{position:relative}.appfrag .exercise-accordion.workout-exercise .exercise-accordion-head>.exercise-info-button{margin-left:auto}.appfrag .exercise-accordion.workout-exercise .exercise-accordion-head>.warmup-corner{margin-left:auto}.appfrag .exercise-accordion.workout-exercise[open] .exercise-accordion-head>.warmup-corner+.exercise-info-button{margin-left:0}.appfrag .exercise-accordion.workout-exercise:not([open]) .warmup-corner{display:none}.appfrag .exercise-info-button{position:relative;flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-size:15px;font-weight:700;font-style:italic;font-family:var(--font-sans);line-height:1;cursor:pointer}.appfrag .exercise-info-button::before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.appfrag .exercise-info-button:active{transform:scale(.94)}.appfrag .exercise-accordion[open] .exercise-accordion-chevron{transform:rotate(90deg)}.appfrag .exercise-accordion-body{padding:2px 18px 18px}.appfrag .log-labels,.appfrag .log-set{display:grid;grid-template-columns:44px minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) 96px;gap:6px;align-items:start}.appfrag .log-labels{margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:750}.appfrag .log-labels span{text-align:center;white-space:nowrap}.appfrag .log-set{padding:12px 0;border:0;background:transparent}.appfrag .log-set+.log-set{border-top:1px solid var(--line)}.appfrag .log-set-number{width:44px;min-height:44px;padding:0;display:grid;place-items:center;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.appfrag .log-set-number:hover,.appfrag .log-set-number:focus-visible{border-color:var(--line);background:var(--surface);color:var(--ink);outline:none}.appfrag .log-set-number.has-tags{border-color:var(--green);background:var(--green-soft);color:var(--green)}.appfrag .weight-entry{min-width:0;display:grid;gap:3px}.appfrag .log-input{width:100%;min-width:0;height:44px;padding:0 9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);outline:none;font-size:16px;font-variant-numeric:tabular-nums;font-weight:700;caret-color:color-mix(in srgb,var(--green) 45%,transparent)}.appfrag .log-input:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--focus-ring)}.appfrag .log-input::placeholder{font-weight:400}.appfrag .selected-set-tags{grid-column:2 / -1;display:flex;flex-wrap:wrap;gap:5px;min-height:0}.appfrag .selected-set-tags:empty{display:none}.appfrag .set-tag-chip{display:inline-flex;align-items:center;min-height:23px;padding:3px 7px;border-radius:8px;background:var(--green-soft);color:var(--green);font-size:10px;font-weight:700}.appfrag .set-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.appfrag .complete-set{width:44px;height:44px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center}.appfrag .complete-set svg{width:27px;height:27px;display:block}.appfrag .complete-set .box{fill:none;stroke:var(--muted);stroke-width:1.8}.appfrag .complete-set .tick{fill:none;stroke:transparent;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.appfrag .complete-set[aria-pressed="true"] .box{fill:var(--green);stroke:var(--green)}.appfrag .complete-set[aria-pressed="true"] .tick{stroke:var(--on-accent)}.appfrag .log-set.is-complete .log-set-number{color:var(--green)}.appfrag .workout-exercise{padding:15px 12px}.appfrag .log-labels{display:grid}.appfrag .log-set{grid-template-columns:44px minmax(0,1.15fr) minmax(0,1fr) minmax(0,1fr) 96px;gap:6px;padding:12px 0;border-top:1px solid var(--line)}.appfrag .log-set-number{grid-row:1;grid-column:1}.appfrag .log-set .weight-entry{grid-row:1;grid-column:2}.appfrag .log-set .reps-input{grid-row:1;grid-column:3}.appfrag .log-set .rpe-input{grid-row:1;grid-column:4}.appfrag .log-set .complete-set{grid-row:1;grid-column:5}.appfrag .selected-set-tags{grid-row:2;grid-column:2 / 6}.appfrag .log-input{padding:0 6px;text-align:center}.appfrag .log-input::placeholder{font-size:10px}.appfrag .superset-band{margin:-5px 0 8px;color:var(--green);font-size:10px;font-weight:800;text-transform:uppercase}.appfrag .log-set .set-actions{grid-column:5}.appfrag .warmup-corner{position:relative;flex:none;align-self:center;height:32px;padding:0 12px;display:inline-flex;align-items:center;border:1px dashed var(--line-strong);border-radius:8px;background:transparent;color:var(--ink);font-size:12px;font-weight:750;line-height:1;white-space:nowrap;cursor:pointer}.appfrag .warmup-corner::before{content:"";position:absolute;left:50%;top:50%;min-width:44px;width:100%;height:44px;transform:translate(-50%,-50%)}.appfrag .warmup-corner:active{border-color:var(--green);background:var(--green-soft)}.appfrag .warmup-corner:focus-visible{outline:2px solid var(--green);outline-offset:2px}.appfrag .filter-group label,.appfrag .filter-label,.appfrag .field>label,.appfrag fieldset.field>legend,.appfrag .stat-label,.appfrag .log-labels,.appfrag .treatment-label,.appfrag .load-control-title,.appfrag .rule-field>span:first-child{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-variant-caps:all-small-caps}.appfrag .dashboard-card,.appfrag .stats-panel,.appfrag .section,.appfrag .workout-start,.appfrag .workout-exercise,.appfrag .program-setup,.appfrag .program-cover,.appfrag .completed-card,.appfrag .program-template-card,.appfrag .progression-preview,.appfrag .treatment-panel,.appfrag .analysis-panel,.appfrag .history-session,.appfrag .note-card,.appfrag .exercise-card,.appfrag .chart-card{border-color:var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-soft)}.appfrag .dashboard-card,.appfrag .stats-panel,.appfrag .workout-exercise,.appfrag .completed-card,.appfrag .program-template-card,.appfrag .analysis-panel{padding:20px}.appfrag .form-action.secondary,.appfrag .small-button,.appfrag .filter-button,.appfrag .calendar-page,.appfrag .back,.appfrag .setup-program-row,.appfrag .add-set{border-color:var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink-strong)}.appfrag .small-button:hover,.appfrag .filter-button:hover,.appfrag .back:hover,.appfrag .setup-program-row:hover,.appfrag .copy-first-set:hover,.appfrag .add-set:hover{filter:brightness(.96)}.appfrag .search,.appfrag select,.appfrag .field input,.appfrag .field textarea,.appfrag .picker-search,.appfrag .tag-editor input,.appfrag .log-input,.appfrag .exercise-note textarea,.appfrag .rule-field input,.appfrag .rule-field select,.appfrag .load-progression input,.appfrag .load-progression select,.appfrag .autofill-row input,.appfrag .week-range-row select{border-color:var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.appfrag .search:focus,.appfrag .field input:focus,.appfrag .field textarea:focus,.appfrag .log-input:focus,.appfrag .exercise-note textarea:focus,.appfrag .picker-search:focus,.appfrag select:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.appfrag .tag,.appfrag .exercise-tag-chip,.appfrag .set-tag-chip,.appfrag .workout-pr,.appfrag .period-tab{border-radius:8px;background:var(--surface);color:var(--muted)}.appfrag .exercise-tag-chip.preset,.appfrag .set-tag-chip{border-color:var(--green);background:var(--green-soft);color:var(--green)}.appfrag .log-set{padding:12px 0;border:0;background:transparent}.appfrag .log-set+.log-set{border-top:1px solid var(--line)}.appfrag .log-set-number{border-radius:14px;background:transparent}.appfrag .log-set-number.has-tags{border-color:var(--green);background:var(--green-soft);color:var(--green)}.appfrag .log-set.is-complete{background:transparent}.appfrag .log-set.is-complete .log-input{border-color:var(--line);background:var(--surface)}.appfrag .log-set.is-complete .log-input[readonly]{color:var(--muted);cursor:default}.appfrag .log-set.is-complete .log-set-number:disabled{cursor:default;opacity:1}.appfrag .complete-set{border-color:var(--line-strong)}.appfrag .selected-set-tags{padding-inline:0}.appfrag .dashboard-card,.appfrag .stats-panel,.appfrag .workout-exercise,.appfrag .completed-card,.appfrag .program-template-card,.appfrag .analysis-panel{padding:16px}.appfrag .log-labels{display:grid}.appfrag .ob-muted{color:var(--muted)}.appfrag .ob-input{width:100%;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}.appfrag .ob-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--focus-ring)}.appfrag .ob-imp-ok{background:var(--green-soft);border:1px solid var(--green);color:var(--green);border-radius:12px;padding:12px 14px;font-size:14px;margin:12px 0;font-weight:600}.appfrag .ob-imp-sum{font-size:14px;color:var(--ink);margin:12px 0}.appfrag .ob-imp-workout{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:10px 0;font-size:14px}.appfrag .ob-imp-workout.skipped{opacity:.45}.appfrag .ob-imp-ex{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0;font-size:13px}.appfrag .ob-imp-nm{color:var(--muted)}.appfrag .ob-imp-no{color:var(--warning);font-weight:600}.appfrag .ob-imp-sel{width:100%;margin-top:2px;font-size:14px}.appfrag .ob-imp-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:10px 0;font-size:13px;color:var(--green);font-weight:600;cursor:pointer;text-align:left}.appfrag .ob-imp-tg-chev{display:inline-block;color:var(--muted);transition:transform .15s;font-size:15px;line-height:1}.appfrag .ob-imp-toggle.open .ob-imp-tg-chev{transform:rotate(90deg)}.appfrag .rule-field{display:grid;gap:4px}.appfrag .rule-field span,.appfrag .load-control-title{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.appfrag .rule-field input,.appfrag .rule-field select{width:100%;min-width:0;min-height:44px;height:44px;margin:0;padding:0 9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);outline:none;font-size:16px;caret-color:color-mix(in srgb,var(--green) 45%,transparent)}.appfrag .rule-field input:focus,.appfrag .rule-field select:focus{border-color:var(--green);box-shadow:0 0 0 3px var(--focus-ring)}.appfrag .rule-field{position:relative;display:block;margin-top:12px}.appfrag .rule-field>span:first-child{position:absolute;top:-7px;left:8px;z-index:1;padding:0 6px;background:var(--notch-bg,var(--bg));max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appfrag .rule-field .unit{position:absolute;right:12px;top:0;bottom:0;display:inline-flex;align-items:center;font-style:normal;font-size:12px;color:var(--muted);pointer-events:none}.appfrag .rule-field:has(.unit) input,.appfrag .rule-field:has(.unit) select{padding-right:44px}.appfrag .rep-preset-row{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 12px}.appfrag .rep-preset{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font-size:12px;font-weight:750}.appfrag .rep-preset[aria-pressed="true"]{border-color:var(--green);background:var(--green-soft);color:var(--green)}.appfrag #settingsRpePills .rep-preset,.appfrag #programRpePills .rep-preset{border-radius:10px;width:44px;height:44px;min-width:0;min-height:0;padding:0;font-size:15px;font-weight:700}.appfrag .week-range-row{margin:0 0 12px}.appfrag .week-range-row strong{display:block;margin-bottom:6px;font-size:11px}.appfrag .week-range-pills{display:flex;flex-wrap:wrap;gap:6px}.appfrag .week-range-pills .rep-preset{min-height:44px;padding:0 10px;font-size:12px}.appfrag .filter-group label,.appfrag .filter-label,.appfrag .field>label,.appfrag fieldset.field>legend,.appfrag .stat-label,.appfrag .log-labels,.appfrag .treatment-label,.appfrag .load-control-title,.appfrag .rule-field>span:first-child{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-variant-caps:all-small-caps}.appfrag .search,.appfrag select,.appfrag .field input,.appfrag .field textarea,.appfrag .picker-search,.appfrag .tag-editor input,.appfrag .log-input,.appfrag .exercise-note textarea,.appfrag .rule-field input,.appfrag .rule-field select,.appfrag .load-progression input,.appfrag .load-progression select,.appfrag .autofill-row input,.appfrag .week-range-row select{border-color:var(--line);border-radius:14px;background:var(--surface);color:var(--ink)}.appfrag .settings-subhead{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-variant-caps:all-small-caps}.appfrag .settings-pair{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.appfrag .step-pills{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 2px 2px}.appfrag .step-pills [data-step]{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700;cursor:pointer}.appfrag .step-pills [data-step][aria-pressed="true"]{border-color:var(--green);background:var(--green-soft);color:var(--green)}.appfrag .switch{position:relative;flex:0 0 auto;width:46px;height:28px;padding:0;border:0;border-radius:999px;background:var(--switch-track);cursor:pointer}.appfrag .switch::before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.appfrag .switch::after{content:'';position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);transition:transform .16s ease}.appfrag .switch[aria-pressed="true"]::after{transform:translateX(18px)}.appfrag .switch[disabled]{opacity:.4;cursor:default}.appfrag .switch[aria-pressed="true"]{background:var(--green)}.appfrag .switch::after{background:var(--surface);box-shadow:0 1px 4px var(--shadow-color)}.appfrag.prog-pick{pointer-events:auto}.appfrag.prog-pick .rep-preset{font-family:inherit}.prog-desc{min-height:3.4em}.appfrag .log-set .weight-input{padding-left:4px;padding-right:4px}/* no-account: "Free. Yes, really." section + hero card icons */

/* no-account polish: data privacy card + tighter section rhythm */

.subpage.tight{padding-top:48px;padding-bottom:56px}
@media (max-width:640px){.subpage.tight{padding-top:36px;padding-bottom:48px}}/* install page: iPhone/Android toggle + numbered steps + screenshot placeholders */

/* Trainers page: homepage-style hero with phone splash, flat hero background, tighter sections (2026-09-21) */

/* ===== Home (single-page layout, 2026-10-31) ===== */
.home-sec{padding-top:64px;padding-bottom:64px}
.home-sec+.home-sec{padding-top:24px}
.home-head{max-width:720px;margin-bottom:28px}
.home-head h2{margin:0;font-size:clamp(34px,4.4vw,54px);line-height:1.05;letter-spacing:-.05em}
.home-head p:not(.gs-kicker){margin:14px 0 0;color:var(--muted);font-size:18px;line-height:1.55}

.fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fcard{display:flex;flex-direction:column;gap:8px;min-width:0;padding:22px;border:1px solid var(--line);border-radius:22px;background:var(--surface)}
.fcard.span2{grid-column:span 2}
.fcard h3{margin:0;font-size:20px;line-height:1.2;letter-spacing:-.03em}
.fcard>p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.fcard .fvis{margin-top:0;padding-top:14px;min-width:0}

.fcard .progress-demo{padding:0;border:0;background:none}

.fmap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px;align-items:start}.fmap [data-sets-muscle-list]{min-height:252px}
.fmap .cg-map{max-width:none}
.fmap .switcher{margin-bottom:12px}
.fpills{display:flex;flex-wrap:wrap;gap:6px}

.home-programs a{display:block;padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);font-weight:700;font-size:15px;text-decoration:none;color:var(--ink)}
.home-programs a span{display:block;color:var(--muted);font-size:13px;font-weight:500}
.home-programs a:hover{border-color:var(--green)}
.trainer-note{margin:16px 0 0;padding:14px 16px;border-radius:16px;background:var(--green-soft);color:var(--green-deep);font-size:15px;line-height:1.5}
.free-band{padding:44px;border-radius:28px;background:var(--green);color:#eef6e8}
.free-band-top{display:block}
.free-band .answer{display:block;font-size:clamp(72px,11vw,128px);font-weight:900;line-height:.85;letter-spacing:-.07em;color:#a8dd9f}
.free-band h2{margin:10px 0 0;font-size:clamp(28px,3.4vw,40px);letter-spacing:-.04em;color:#fff}
.free-band-lead{max-width:720px;margin:16px 0 0;color:#eef6e8;font-size:18px;line-height:1.55}
.free-band a{color:#fff;font-weight:700}
.home-faq{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.faq-col{display:flex;flex-direction:column;min-width:0}
.faq-item{border-top:1px solid var(--line)}
.faq-col .faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:17px 0;font-weight:700;font-size:17px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";flex:none;color:var(--green);font-weight:700;font-size:20px;line-height:1}
.faq-item[open] summary::after{content:"\2212"}
.faq-item summary:focus-visible{outline:2px solid var(--green);outline-offset:4px;border-radius:4px}
.faq-answer{padding:0 0 18px;color:var(--muted);font-size:15px;line-height:1.6}
.faq-answer p{margin:0 0 8px}
.faq-answer p:last-child{margin:0}
.faq-answer a{color:var(--green);font-weight:600}
.help-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.help-grid a{display:flex;flex-direction:column;gap:6px;min-width:0;padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);text-decoration:none}
.help-grid a:hover{border-color:var(--green)}
.help-grid strong{font-size:17px;letter-spacing:-.02em}
.help-grid span{color:var(--muted);font-size:14px;line-height:1.5}
.help-grid em{margin-top:auto;padding-top:8px;color:var(--green);font-style:normal;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:7px}
.help-ico{width:16px;height:16px;flex:none}
.free-heart{width:24px;height:24px;color:#a8dd9f;vertical-align:-3px}

@media (max-width:900px){
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  
}
@media (max-width:640px){
  .home-sec{padding-top:44px;padding-bottom:44px}
  .free-band{padding:28px 22px;border-radius:22px}
}
html.dark .free-band{background:#205d25}

.home-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.home-split.center{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.home-split .demo-share{margin:0;max-width:none}
.home-h2{margin:6px 0 0;font-size:clamp(34px,4.4vw,54px);line-height:1.05;letter-spacing:-.05em}
.home-lede{margin:14px 0 0;color:var(--muted);font-size:18px;line-height:1.55}
.home-split .prog-points li:last-child{border-bottom:0}
.jump-panel{display:grid;gap:14px;padding:20px;border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:0 18px 44px rgba(60,40,20,.10)}
.jump-panel .demo-suggestion{margin:0}


.fpills{display:flex;flex-wrap:wrap;gap:6px}
.fpill{padding:5px 11px;border-radius:8px;background:var(--paper-deep);color:var(--muted);font-size:13px;font-weight:700}
.fpill.on{background:var(--green-soft);color:var(--green-deep)}


.fcard .progress-demo{max-width:none;margin:0;padding:0;border:0;background:none;box-shadow:none}
.footer-brand-block .footer-train{display:inline-flex;justify-content:center;min-width:200px;margin-top:18px;padding:16px 28px;font-size:18px}
.footer-brand-block .footer-pitch-unused{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-width:200px;margin-top:10px;padding:14px 28px;font-size:16px}
.footer-brand-block{display:flex;flex-direction:column;align-items:flex-start}
@media (max-width:900px){
  .home-split,.home-split.center{grid-template-columns:1fr}
}
.jump-panel.demo-suggestions{grid-template-columns:1fr;margin:0}
.home-programs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0 0}/* ===== Docs (layout: /docs/*, built by build_docs) ===== */
.docs{display:grid;grid-template-columns:224px minmax(0,1fr) 184px;gap:36px;width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:36px 0 96px;align-items:start}
.docs-side{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;padding-right:6px}
.docs-menu{display:none}
.docs-search input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.docs-search input:focus{outline:2px solid var(--green);outline-offset:1px}
.docs-nav{margin-top:18px;display:grid;gap:20px}
.docs-group p{margin:0 0 6px;padding:0 10px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.docs-group ul{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.docs-group a{display:block;padding:7px 10px;border-radius:9px;color:var(--ink);font-size:14px;line-height:1.35;text-decoration:none}
.docs-group a:hover{background:var(--paper-deep)}
.docs-group a.current{background:var(--green-soft);color:var(--green-deep);font-weight:700}
.docs-ext{color:var(--muted);font-size:12px}
.docs-empty{margin:0;padding:0 10px;color:var(--muted);font-size:13px}
.docs-main{min-width:0;max-width:760px}
.docs-crumb{margin:0 0 8px;color:var(--green);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.docs-main h1{margin:0;font-size:clamp(34px,4.4vw,46px);line-height:1.05;letter-spacing:-.045em}
.docs-lede{margin:14px 0 0;color:var(--muted);font-size:18px;line-height:1.55}.docs-updated{margin:10px 0 0;color:var(--muted);font-size:13px}
.docs-body{margin-top:28px;font-size:16px;line-height:1.7}
.docs-body h2{margin:40px 0 10px;padding-top:4px;font-size:24px;line-height:1.2;letter-spacing:-.03em;scroll-margin-top:24px}
.docs-body h3{margin:28px 0 8px;font-size:18px;letter-spacing:-.02em;scroll-margin-top:24px}
.docs-body>h2:first-child{margin-top:0}
.docs-body p{margin:0 0 14px;color:var(--ink)}
.docs-body ul,.docs-body ol{margin:0 0 16px;padding-left:22px}
.docs-body li{margin:4px 0}
.docs-body a{color:var(--green);font-weight:600}
.docs-body code{padding:1px 6px;border-radius:6px;background:var(--paper-deep);font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:.88em}
.docs-body pre{overflow-x:auto;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.docs-body pre code{padding:0;background:none}
.docs-body blockquote{margin:0 0 16px;padding:12px 16px;border-left:3px solid var(--green);border-radius:0 12px 12px 0;background:var(--green-soft);color:var(--green-deep)}
.docs-body blockquote p{margin:0;color:inherit}
.docs-body table{width:100%;border-collapse:collapse;margin:0 0 16px;font-size:15px}
.docs-body th,.docs-body td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.docs-body th{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.docs-body img{max-width:100%;border-radius:12px}
.docs-body .math-block{margin:0 0 8px}
.docs-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:48px;padding-top:20px;border-top:1px solid var(--line)}
.docs-pager a{display:flex;flex-direction:column;gap:3px;color:var(--ink);font-size:16px;font-weight:700;text-decoration:none}
.docs-pager a:hover{color:var(--green)}.docs-pager a i{font-style:normal}
.docs-pager a span{color:var(--muted);font-size:12px;font-weight:600}
.docs-pager .next{align-items:flex-end;text-align:right}
.docs-toc{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow-y:auto;font-size:13px}
.docs-toc p{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.docs-toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.docs-toc li a{display:block;margin-left:-1px;padding:4px 0 4px 12px;border-left:2px solid transparent;color:var(--muted);line-height:1.4;text-decoration:none}
.docs-toc li.l3 a{padding-left:24px}
.docs-toc li a:hover{color:var(--ink)}
.docs-toc li a.active{border-left-color:var(--green);color:var(--green-deep);font-weight:700}
@media (max-width:1150px){.docs{grid-template-columns:232px minmax(0,1fr);gap:36px}.docs-toc{display:none}}
@media (max-width:820px){
  .docs{grid-template-columns:1fr;gap:0;padding-top:0;width:calc(100% - 40px)}
  .docs-side{position:static;max-height:none;overflow:visible;padding:0;margin:0 -20px 24px}
  .docs-side-inner{display:none}
  .docs-menu{display:block;border-bottom:1px solid var(--line);background:var(--surface)}
  .docs-menu summary{display:flex;align-items:center;gap:8px;min-width:0;padding:12px 20px;font-size:14px;cursor:pointer;list-style:none}
  .docs-menu summary::-webkit-details-marker{display:none}
  .docs-menu summary svg{flex:none;color:var(--muted)}
  .docs-menu-group{flex:none;color:var(--muted)}
  .docs-menu-sep{flex:none;color:var(--muted)}
  .docs-menu-page{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
  .docs-menu[open]{padding-bottom:14px}
  .docs-menu .docs-search{padding:2px 20px 0}
  .docs-menu .docs-nav{padding:0 10px;margin-top:14px}
  .docs-crumb{display:none}
  .docs-main h1{font-size:30px;letter-spacing:-.035em}
  .docs-lede{margin-top:10px;font-size:16px}
  .docs-body{margin-top:20px;font-size:15.5px;line-height:1.65}
  .docs-body h2{margin-top:30px;font-size:20px}
  .docs-body h3{font-size:17px}
  .docs-body ul,.docs-body ol{padding-left:20px}
  .docs-pager{margin-top:36px;gap:12px}
  .docs-pager a{font-size:15px}
}
.docs-body .math-formula{font-size:20px;line-height:1.4}.docs-body .math-def{font-size:15px}
@media (max-width:820px){.docs-body .math-formula{font-size:18px}}

.gs-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:8px}
.gs-card{display:flex;flex-direction:column;gap:8px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);text-decoration:none}
.gs-card:hover{border-color:var(--green)}
.gs-card-num{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--green-soft);color:var(--green-deep);font-weight:800}
.gs-card h2{margin:4px 0 0;font-size:21px;letter-spacing:-.03em}
.gs-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.55}
.gs-card-more{margin-top:auto;padding-top:6px;color:var(--green);font-size:14px;font-weight:700}
.gs-panel{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.gs-panel h2{margin:0;font-size:21px;letter-spacing:-.03em}
.gs-panel p{margin:4px 0 0;color:var(--muted);font-size:15px}
.docs-body .gs-frag,.docs-body .appfrag{margin:4px 0 16px}
@media (max-width:640px){.gs-cards{grid-template-columns:1fr}}/* ===== Home + docs on phones (kept last so it wins the cascade) ===== */
@media (max-width:900px){
  .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .home-sec{padding-top:44px;padding-bottom:44px}
  .home-sec+.home-sec{padding-top:12px}
  .home-head{margin-bottom:20px}
  .home-head h2,.home-h2{font-size:34px}
  .home-head p:not(.gs-kicker),.home-lede{font-size:16px}
  .fgrid{gap:12px}
  .fcard,.fcard.span2{grid-column:auto;padding:18px;border-radius:18px}
  .fcard h3{font-size:19px}
  .fmap{gap:14px}
  .fmap .cg-map{width:100%;max-width:300px;margin:0 auto}
  
  .home-split{gap:24px}
  .home-split.center>.demo-share{order:2}
  .jump-panel{padding:14px;border-radius:18px}
  .home-programs{grid-template-columns:1fr 1fr}
  .free-band{padding:26px 20px;border-radius:20px}
  .help-grid a{padding:16px}
  .faq-item summary{font-size:16px;padding:15px 0}
  .home-faq .faq-col+.faq-col .faq-item:first-child{border-top:0}
}
.fmap .switcher{display:flex;width:100%;max-width:100%}.fmap .switcher .switch-tab{flex:1;min-width:0}/* ===== Home features pass: themes, stages, PRs, share card ===== *//* Gold values are the app's: --gold #ea9d34, --gold-soft #fae9cc, PR text #9a5515 */

.themes-demo{display:flex;flex-direction:column;gap:12px}
.theme-pick{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.theme-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;min-width:0}
.theme-chip i{width:12px;height:12px;border-radius:4px;border:1px solid rgba(0,0,0,.14)}
.theme-chip.active{background:var(--green-soft);border-color:var(--green);color:var(--green-deep)}
.theme-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.theme-palette[hidden]{display:none}
.swatch{display:flex;flex-direction:column;gap:1px;font-size:10px;letter-spacing:-.01em;font-weight:600;color:var(--ink);min-width:0}
.swatch i{width:100%;height:30px;margin-bottom:3px;border-radius:8px;border:1px solid var(--line)}
.swatch code{font-size:10px;font-weight:400;color:var(--muted)}
.stage-mock{display:flex;flex-direction:column;gap:7px}
.stage-mock-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.stage-mock-head strong{font-size:16px;font-weight:750;color:var(--ink)}
.stage-mock-head span{font-size:13px;font-weight:650;color:var(--muted)}
.stage-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.stage-strip .seg{height:6px;border-radius:999px;background:var(--paper-deep)}
.stage-strip .seg.past{background-color:#5da464}
.stage-strip .seg.current{background-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.stage-strip .seg.deload{background-image:repeating-linear-gradient(45deg,transparent 0 2px,rgba(0,0,0,.25) 2px 4px)}
.stage-labels{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px;font-size:11px;font-weight:600;color:var(--muted)}
.stage-mock-line{margin:2px 0 0;font-size:13px;font-weight:650;color:var(--muted)}
.stage-mock-line span{margin-left:6px;font-weight:600;color:var(--ink);opacity:.72}
.pr-list{list-style:none;margin:6px 0 0;padding:0}
.pr-list li{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.pr-list li:first-child{border-top:0;padding-top:2px}
.pr-list li>span{font-size:14px;font-weight:650;color:var(--ink)}
.pr-list em{margin-left:auto;font-style:normal;font-size:13px;font-weight:600;color:var(--muted)}
.pr-tag{flex:0 0 auto;padding:2px 7px;border:1px solid #ea9d34;border-radius:8px;background:#fae9cc;color:#9a5515;font-size:10px;font-weight:800;letter-spacing:.06em}/* Share preview card: a scaled mirror of the app's real share card
   (share-unfurl worker buildCardHtml): cream backdrop, one surface shell
   with a hairline border, green brand tile with the white arrow mark,
   squared kind tag, stat tiles, completed exercises as firmed cards with
   green set-complete squares, gold wash only on the PR row, and the
   muscle panel on a firmed surface with the map at a fixed sane size. */
.scard{--sc-surface:#fffaf3;--sc-firm:#fffdf9;--sc-ink:#26261f;--sc-muted:#6e6a5e;--sc-line:#dfdad9;--sc-line-soft:#eae4d8;--sc-accent:#2e7d32;--sc-accent-deep:#256b29;--sc-soft:#ddefdc;--sc-gold-wash:#fbeed2;--sc-gold-text:#8a5a10;margin-top:18px;padding:10px;border-radius:18px;background:#faf4ed}
.scard-shell{padding:16px 18px;border:1px solid var(--sc-line);border-radius:14px;background:var(--sc-surface);color:var(--sc-ink)}
.scard-brand{display:flex;align-items:center;gap:9px}
.scard-tile{flex:0 0 auto;width:28px;height:28px;border-radius:8px;background:var(--sc-accent);display:flex;align-items:center;justify-content:center}
.scard-tile svg{width:19px;height:19px;display:block}
.scard-wordmark{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1}
.scard-kind{flex:0 0 auto;padding:4px 7px;border-radius:5px;background:var(--sc-soft);color:var(--sc-accent-deep);font-size:9.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.scard-url{margin-left:auto;font-size:12px;font-weight:600;color:var(--sc-muted)}
.scard-rule{height:1px;margin:9px 0 10px;background:var(--sc-line)}
.scard-titlerow{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.scard-titlerow h4{margin:0;font-size:22px;font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--sc-ink)}
.scard-date{padding-bottom:2px;font-size:12px;font-weight:600;color:var(--sc-muted);white-space:nowrap}
.scard-tiles{display:flex;gap:7px;margin-top:11px}
.scard-stat{flex:1;min-width:0;padding:8px 10px 7px;border:1px solid var(--sc-line);border-radius:10px;background:var(--sc-firm)}
.scard-tval{display:block;font-size:19px;font-weight:800;line-height:1.12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard-tval small{font-size:11px;font-weight:650;color:var(--sc-muted)}
.scard-tlab{display:block;margin-top:2px;font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--sc-muted)}
.scard-body{display:flex;gap:16px;margin-top:12px;align-items:flex-start}
.scard-main{flex:1;min-width:0}
.scard-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;padding:8px 10px;border:1px solid var(--sc-line-soft);border-radius:10px;background:var(--sc-firm)}
.scard-row.is-pr{background:var(--sc-gold-wash);border-color:transparent}
.scard-check{flex:0 0 auto;width:20px;height:20px;border-radius:5px;background:var(--sc-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800}
.scard-exmain{flex:1;min-width:0}
.scard-exname{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard-pr{flex:0 0 auto;padding:2px 6px;border-radius:5px;background:var(--sc-gold-wash);color:var(--sc-gold-text);font-size:10px;font-weight:800;letter-spacing:.04em;line-height:1.2}
.scard-exsub{margin-top:1px;font-size:12px;line-height:1.3;color:var(--sc-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard-exsub b{color:var(--sc-ink);font-weight:700}
.scard-exvol{font-size:13px;font-weight:700;white-space:nowrap}
.scard-exvol span{font-size:10.5px;font-weight:600;color:var(--sc-muted)}
.scard-more{margin:0;padding:2px 2px 0;font-size:12px;font-weight:600;color:var(--sc-muted)}
.scard-more b{color:var(--sc-accent-deep);font-weight:800}
.scard-panel{flex:0 1 280px;min-width:208px;padding:12px 14px;border:1px solid var(--sc-line);border-radius:14px;background:var(--sc-firm)}
.scard-mp-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.scard-mp-title{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sc-muted);white-space:nowrap}
.scard-seg{display:flex;flex:0 0 auto;border:1px solid var(--sc-line);border-radius:5px;overflow:hidden}
.scard-seg span{padding:2px 6px;background:var(--sc-surface);font-size:9px;font-weight:650;color:var(--sc-muted)}
.scard-seg span.on{background:var(--sc-soft);color:var(--sc-accent-deep);font-weight:800}
.scard-map{width:140px;margin:6px auto 0}
.scard-heat{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-top:9px}
.scard-hrow{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:1.25;color:var(--sc-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scard-hrow i{flex:0 0 auto;width:10px;height:10px;border-radius:3px}
.scard-foot{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--sc-line-soft);font-size:12.5px;color:var(--sc-muted)}
@media (max-width:640px){
  .scard-brand{gap:7px}
  .scard-url{display:none}
  .scard-wordmark{font-size:16px}
  .scard-kind{padding:4px 6px;font-size:9px}
  .scard-url{font-size:11.5px}
  .scard-tiles{flex-wrap:wrap}
  .scard-stat{flex:1 1 40%}
  .scard-body{flex-direction:column}
  .scard-main{width:100%}
  .scard-panel{flex:0 0 auto;width:100%}
  .scard-map{width:132px}
}/* In the two-column split the card sits in a half-width column where the
   exercise column is too narrow beside the muscle panel: stack them. */
@media (min-width:901px){
  .scard-body{flex-direction:column}
  .scard-main{width:100%}
  .scard-panel{flex:0 0 auto;width:100%}
}/* ===== Home pass 2: resume card, warm-up button, custom exercises ===== *//* Resume card mirrors the app's in-progress card (fork-continue-card):
   kicker 13px/700 accent with a muted .sub, title 28px/800, meta 13px,
   primary button accent, --btn-h-lg tall; rendered in the site fragment
   theme tokens, not the dark theme. */
.resume-topbar{position:relative;display:flex;align-items:center;justify-content:flex-end;min-height:38px;padding:0 2px 10px;border-bottom:1px solid var(--line)}
.resume-topbar-title{position:absolute;left:0;right:0;text-align:center;font-size:15px;font-weight:750;color:var(--ink);pointer-events:none}
.resume-topbar .live-chip{min-height:32px;padding:3px 12px;border-radius:12px}
.resume-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.resume-kicker{display:block;margin-bottom:12px;color:var(--green);font-size:13px;font-weight:700;line-height:1.3;letter-spacing:.08em;text-transform:uppercase}
.resume-kicker .sub{color:var(--muted)}
.resume-title{display:block;font-size:28px;font-weight:800;letter-spacing:-.01em;line-height:1.15;color:var(--ink)}
.resume-meta{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.45}
.resume-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:16px}
.resume-go{flex:1 1 100%;display:flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border:1px solid var(--green);border-radius:12px;background:var(--green);color:#fff;font-size:16px;font-weight:750;white-space:nowrap}
.resume-blank{padding:4px 2px;color:var(--green);font-size:13px;font-weight:700;white-space:nowrap}/* Warm-up card mirrors the app exercise-card head: title, the dashed
   .warmup-corner button (1px dashed, radius-sm, 12px/750, 32px tall),
   then the 40px info button. */
.warm-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.warm-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.warm-title{min-width:0}
.warm-title strong{font-size:16px;letter-spacing:-.01em;color:var(--ink)}
.warmup-corner{margin-left:auto;flex:none;height:32px;padding:0 12px;display:inline-flex;align-items:center;border:1px dashed var(--line-strong);border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:750;line-height:1;white-space:nowrap;cursor:pointer}
.warmup-corner.on{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}
.warmup-corner:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.warm-info{flex:none;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted)}/* Set list mirrors the app's .log-set rows: number cell (accent-soft with
   a border when the set carries tags), weight / reps / RPE fields, the
   complete checkbox, hairlines between rows. Warm-up rows ghost their
   ladder values like the app's placeholders and carry the Warmup chip in
   the tags row under the fields. */
.wsets{display:grid}
.wset-labels{display:grid;grid-template-columns:30px 1fr 1fr 1fr 24px;gap:5px;padding:0 0 5px}
.wset-labels span{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);text-align:center}
.wset{display:grid;grid-template-columns:30px 1fr 1fr 1fr 24px;gap:5px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.wset-num{height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;color:var(--muted);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.wset-num.has-tags{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}
.wset-field{height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;background:#fffdf8;color:var(--ink);font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.wset-field.ghost{color:var(--muted);font-weight:400}
.wset-field.rpe{font-size:10px}
.wset-box{display:grid;place-items:center}
.wset-box svg{width:21px;height:21px;display:block}
.wset-box .box{fill:none;stroke:var(--muted);stroke-width:1.8}
.wset-tags{grid-column:2/-1;display:flex;flex-wrap:wrap;gap:5px}
.wset-chip{display:inline-flex;align-items:center;min-height:20px;padding:2px 7px;border-radius:6px;background:var(--green-soft);color:var(--green-deep);font-size:10px;font-weight:700}/* Custom exercise card: editor fragment + the library row it produces. */
@media (max-width:640px){
  .resume-title{font-size:24px}
}

/* ===== Home rhythm (site refinement) =====
   One spacing scale for the home page: sections sit 96px apart on desktop
   and 64px on phones; cards pad 24px (20px on phones) with 16px gaps.
   Radii: chips 8px, buttons 10px, site cards 20px, app fragments 16px,
   bands 28px. Progress bars, switch tracks and step circles stay round. */
:root{--r-chip:8px;--r-btn:10px;--r-card:20px;--r-app:16px;--r-band:28px;--sec-y:48px;--card-pad:24px;--grid-gap:16px}
.nav-cta,.button{border-radius:var(--r-btn)}
.menu-button,.switch-tab,.mode-button,.mini-segmented button{border-radius:var(--r-btn)}
.home-sec,.home-sec+.home-sec{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
.home-head{margin-bottom:32px}
.home-h2,.home-head h2{margin:0}
.fgrid{gap:var(--grid-gap)}

.fcard{padding:var(--card-pad);border-radius:var(--r-card);gap:8px}
.fcard .fvis{padding-top:20px}

.help-grid{gap:var(--grid-gap)}
.help-grid a{padding:var(--card-pad);border-radius:var(--r-card);transition:border-color .16s,transform .16s}
.help-grid a:hover{transform:translateY(-2px)}
.home-programs a{border-radius:12px;transition:border-color .16s}
.jump-panel{border-radius:var(--r-card)}
.trainer-note{border-radius:12px}
.free-band{border-radius:var(--r-band);padding:48px}
.free-band h2{margin:0;font-size:clamp(30px,3.6vw,44px);line-height:1.05}
.free-band .answer{margin-bottom:6px}
.fpill,.tag,.set-tag,.program-chip,.theme-chip,.wset-chip,.pr-tag{border-radius:var(--r-chip)}


/* Switching from another app */
.switch-band{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.switch-copy .home-h2{font-size:clamp(30px,3.6vw,44px)}
.text-link{display:inline-flex;gap:6px;margin-top:18px;color:var(--green-deep);font-weight:750;text-decoration:none}
.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.import-steps{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.import-steps li{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);font-size:16px;font-weight:650;line-height:1.45}
.step-num{flex:none;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:14px;font-weight:800}

/* Closing call to action */





@media (max-width:900px){
  .switch-band{grid-template-columns:1fr;gap:28px}
}
@media (max-width:600px){
  :root{--sec-y:32px;--card-pad:20px;--grid-gap:12px}
  .free-band{padding:28px 22px;border-radius:22px}
  
  .import-steps li{padding:16px;font-size:15px}
  
}
@media (prefers-reduced-motion:reduce){.help-grid a,.help-grid a:hover{transition:none;transform:none}}

/* ===== App fragments (.ka) =====
   Mocks of real app surfaces, built from the app's own light-theme tokens
   (kohlrabi-app assets/styles.css :root). Keep them in step with the app:
   cards 16px, buttons and inputs 12px, chips 8px, progress strips round. */
.ka{--a-bg:#faf4ed;--a-surface:#fffaf3;--a-surface-2:#f2e9e1;--a-raised:#fffdf8;--a-ink:#1c1c1e;--a-strong:#000;--a-muted:#5f5f63;--a-meta:rgba(28,28,30,.72);--a-line:#dfdad9;--a-line-strong:#cecacd;--a-accent:#2e7d32;--a-accent-hover:#256429;--a-soft:#ddefdc;--a-foam:#5da464;--a-shadow-soft:0 1px 2px rgba(60,48,20,.04),0 4px 14px rgba(60,48,20,.04);color:var(--a-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;text-align:left;letter-spacing:0}
.ka-card{padding:16px;border:1px solid var(--a-line);border-radius:16px;background:var(--a-surface);box-shadow:var(--a-shadow-soft)}
.ka p{margin:0}
.ka-chip{display:inline-flex;align-items:center;padding:4px 10px;border-radius:8px;background:var(--a-soft);color:var(--a-accent-hover);font-size:10px;font-weight:800;letter-spacing:.04em;line-height:1.3}
.ka-btn{display:flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border:1px solid var(--a-accent);border-radius:12px;background:var(--a-accent);color:#fff;font-size:16px;font-weight:750}
.ka-link{padding:4px 2px;color:var(--a-accent);font-size:13px;font-weight:700}
/* Top bar + Live chip */

/* Home: workout in progress */


/* Suggestion card */
.ka-sugg{display:block;width:100%;min-height:62px;padding:16px;border:1.5px solid var(--a-line);border-radius:16px;background:var(--a-raised);box-shadow:var(--a-shadow-soft);color:var(--a-ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}
.ka-sugg-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.ka-sugg-target{font-size:19px;font-weight:800;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.ka-sugg-basis{display:block;margin-top:6px;color:var(--a-muted);font-size:13px;line-height:1.45}
@media (hover:hover){.ka-sugg:hover{border-color:var(--a-accent);background:var(--a-soft)}}
.ka-sugg.applied{border-color:var(--a-accent);background:var(--a-soft)}
.ka-sugg:focus-visible{outline:2px solid var(--a-accent);outline-offset:2px}
.ka-sugg-stack{display:grid;gap:8px}
/* Program stage card */
.ka-stage-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:12px}
.ka-stage-head strong{font-size:17px;font-weight:700;color:var(--a-strong);letter-spacing:-.025em}
.ka-stage-head span{color:var(--a-meta);font-size:13px;font-weight:650;white-space:nowrap}
.ka-weeks{display:grid;grid-template-columns:repeat(var(--weeks,8),minmax(0,1fr));gap:4px;margin:12px 0 20px}
.ka-weeks span{height:6px;border-radius:999px;background:var(--a-surface-2)}
.ka-weeks .past{background:var(--a-foam)}
.ka-weeks .current{background:var(--a-accent);box-shadow:0 0 0 2px var(--a-soft)}
.ka-weeks .deload{background-image:repeating-linear-gradient(45deg,rgba(0,0,0,.25) 0 2px,transparent 2px 4px)}
.ka-weeks .current.deload{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.55) 0 2px,transparent 2px 4px)}
.ka-weeks .run{margin-left:6px}
.ka-stage-line{color:var(--a-meta);font-size:13px;font-weight:650}
.ka-stage-line span{display:block;margin-top:2px;color:var(--a-muted)}
/* Exercise card: warm-up button and set rows */
.ka-ex-head{display:flex;align-items:center;gap:10px;padding-bottom:12px}
.ka-ex-head strong{font-size:16px;font-weight:700;letter-spacing:-.01em}
.ka-warmup{display:inline-flex;align-items:center;height:32px;margin-left:auto;padding:0 12px;border:1px dashed var(--a-line-strong);border-radius:8px;background:transparent;color:var(--a-ink);font:inherit;font-size:12px;font-weight:750;line-height:1;cursor:pointer}
.ka-warmup:active{border-color:var(--a-accent);background:var(--a-soft)}
.ka-warmup:focus-visible{outline:2px solid var(--a-accent);outline-offset:2px}
.ka-info{width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--a-line);border-radius:12px;background:var(--a-surface);color:var(--a-muted)}
.ka-ex-head .ka-warmup[hidden]+.ka-info,.ka-ex-head .ka-info:only-of-type{margin-left:auto}
.ka-info svg{width:18px;height:18px}
.ka-labels,.ka-set{display:grid;grid-template-columns:44px repeat(3,minmax(0,1fr)) 50px;gap:6px;align-items:center}
.ka-labels{margin-bottom:0;color:var(--a-muted);font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;text-align:center}
.ka-set{padding:12px 0}
.ka-num{height:44px;display:grid;place-items:center;border-radius:12px;font-size:13px;font-weight:800}
.ka-num.tags{border:1px solid var(--a-accent);background:var(--a-soft);color:var(--a-accent)}
.ka-in{height:44px;display:grid;place-items:center;border:1px solid var(--a-line);border-radius:12px;background:var(--a-raised);font-size:16px;font-weight:700}
.ka-in.ph{color:var(--a-muted);font-size:12px;font-weight:400}
.ka-box{width:27px;height:27px;justify-self:center;fill:none;stroke:var(--a-muted);stroke-width:1.8}
.ka-set-tags{grid-column:2/-1;display:flex;gap:5px}
.ka-tagchip{display:inline-flex;align-items:center;min-height:23px;padding:3px 7px;border-radius:8px;background:var(--a-soft);color:var(--a-accent);font-size:10px;font-weight:700}
/* Share page */
.ka-share-kicker{display:block;margin-bottom:5px;color:var(--a-accent);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.ka-h2{font-size:26px;font-weight:800;line-height:1.08;letter-spacing:-.025em;color:var(--a-strong)}
.ka-context{margin:6px 0 10px!important;color:var(--a-muted);font-size:13px}
.ka-chips{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 12px}
.ka-tag{display:inline-flex;align-items:center;height:28px;padding:6px 10px;border:1px solid var(--a-line);border-radius:8px;background:var(--a-surface);color:var(--a-muted);font-size:13px;font-weight:700;line-height:1}
.ka-tag.primary{border-color:var(--a-accent);background:var(--a-soft);color:var(--a-accent)}
.ka-share-actions{display:grid;gap:2px;justify-items:center;margin:2px 0 14px}
.ka-share-actions .ka-btn{width:100%}
.ka-alt{display:inline-flex;align-items:center;min-height:44px;padding:10px 12px;color:var(--a-accent);font-size:14px;font-weight:700}
.ka-h3{margin-bottom:12px!important;font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--a-strong)}
.ka-h3.ruled{margin-top:16px!important;padding-top:16px;border-top:1px solid var(--a-line)}
.ka-map{margin:4px 0 10px}
.ka-muscles{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.ka-row{display:block;min-height:58px;margin-bottom:8px;padding:10px 12px;border:1px solid var(--a-line);border-radius:12px;background:var(--a-raised)}
.ka-row strong{display:block;margin-bottom:4px;font-size:14px}
.ka-row span{color:var(--a-meta);font-size:13px;font-weight:650}
.ka-row .fact{margin-left:10px}
@media (prefers-reduced-motion:reduce){.ka-sugg{transition:none}}
html.dark .ka{color-scheme:light}
.scard-titlerow .scard-title{display:block;margin:0;font-size:22px;font-weight:800;letter-spacing:-.025em;line-height:1.1;color:var(--sc-ink)}
.share-preview .scard{margin-top:0}

/* Sharing: copy and link preview on the left, the shared page on the right. */
.share-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);grid-template-rows:auto 1fr;grid-template-areas:"copy page" "preview page";gap:32px 48px;align-items:start}
.share-copy{grid-area:copy}
.share-visual{grid-area:page;display:flex;flex-direction:column;gap:20px;min-width:0}
.ka-dialog-title{margin:0;font-size:17px;font-weight:750;color:var(--a-strong)}
.ka-link-field{display:block;padding:11px 12px;border:1px solid var(--a-line-strong);border-radius:10px;background:var(--a-bg);color:var(--a-accent);font-size:13.5px;font-weight:600;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ka-link-field:hover{text-decoration:underline}
.ka-dialog-actions{display:flex;gap:8px;margin-top:10px}
.ka-dialog-actions .ka-btn{flex:1 1 auto;width:auto;cursor:pointer}
.ka-btn-secondary{display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border:1px solid var(--a-line-strong);border-radius:12px;background:var(--a-surface);color:var(--a-ink);font-size:15px;font-weight:700;flex:0 0 auto}
.share-preview{grid-area:preview;min-width:0}


@media (max-width:900px){.share-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"copy" "page" "preview"}.share-visual{max-width:440px;width:100%;justify-self:center}}

/* Suggestion demo: the exercise each card belongs to */
.sugg-ex{margin:0 0 6px;color:var(--muted);font-size:12px;font-weight:750;letter-spacing:.02em}
.jump-panel{padding:20px;box-shadow:0 18px 44px rgba(60,40,20,.08)}

/* Hero: real app cards laid on the paper like product photography. */
.hero::before{background:radial-gradient(120% 90% at 85% 40%,#f3ece2 0%,var(--paper) 62%)}
.hero-collage{min-height:0;display:grid;place-items:start stretch;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px;align-items:start;padding:8px 0}
.hero-collage::before{content:none}
.collage-col{display:grid;gap:20px;min-width:0}
.collage-col-2{padding-top:56px}
.collage-item{box-shadow:0 1px 2px rgba(60,48,20,.05),0 18px 40px rgba(60,48,20,.10);border-radius:16px;transition:transform .2s ease}
.collage-item.tilt-l{transform:rotate(-1.2deg)}
.collage-item.tilt-r{transform:rotate(1.2deg)}
@media (hover:hover){.collage-item:hover{transform:rotate(0) translateY(-2px)}}
.collage-item .ka-ex-head{padding-bottom:12px}
.collage-map .cg-map{max-width:300px;margin:0 auto}
@media (max-width:900px){.hero-collage{max-width:560px;margin:0 auto}}
@media (max-width:600px){
  /* Phones: three compact cards: suggestion, shared workout, stage. */
  .hero-collage{display:flex;flex-direction:column;align-items:stretch;gap:14px;width:min(100%,360px);padding:0 6px}
  .collage-col,.collage-col-2{display:contents}
  .collage-map{display:none}
  .collage-sugg{order:1}.collage-share{order:2}.collage-stage{order:3}
  .collage-item.ka-card{padding:14px}
  .collage-item .ka-sugg{padding:14px}
  .collage-item .ka-sugg-target{font-size:18px}
  .collage-item .ka-weeks{margin:10px 0 14px}
  .collage-share .ka-btn{min-height:46px}
  .collage-share .ka-share-actions{margin-bottom:0}
}
@media (prefers-reduced-motion:reduce){.collage-item{transition:none}.collage-item:hover{transform:none}}
.hero{width:min(var(--wrap),calc(100% - 48px));padding:72px 0 80px;gap:clamp(40px,5vw,72px)}
@media (max-width:900px){.hero{width:min(100% - 40px,720px)}}
@media (max-width:600px){.hero{width:calc(100% - 32px);padding:40px 0 48px;gap:36px}}
.appfrag .stage-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.appfrag .stage-tile{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:56px;padding:8px 11px;text-align:left}
.appfrag .stage-tile strong{font-size:13px}
.appfrag .stage-tile span{color:var(--muted);font-size:12px;font-weight:600}
@media (max-width:600px){.appfrag .stage-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Comparison: what other apps put behind a paid tier */
.cmp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap)}
.cmp-card{display:flex;flex-direction:column;padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.cmp-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.cmp-top strong{font-size:20px;letter-spacing:-.03em}
.cmp-price{color:var(--muted);font-size:14px;font-weight:700;white-space:nowrap}
.cmp-label{margin:16px 0 8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cmp-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cmp-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:15px;font-weight:650;line-height:1.4}
.cmp-free{flex:none;padding:3px 8px;border-radius:var(--r-chip);background:var(--green-soft);color:var(--green-deep);font-size:12px;font-weight:800}
.cmp-kohl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;margin-top:var(--grid-gap);padding:20px var(--card-pad);border-radius:var(--r-card);background:var(--green);color:#fff}
.cmp-kohl strong{font-size:20px;letter-spacing:-.03em}
.cmp-kohl span{color:#e3f0e3;font-size:15px}
.cmp-note{margin:20px 0 0;color:var(--muted);font-size:13px;line-height:1.55}
html.dark .cmp-kohl{background:#205d25}
@media (max-width:760px){.cmp-grid{grid-template-columns:1fr}.cmp-top{flex-wrap:wrap}}

/* Blind spots under a muscle map, as in the app's Stats card */
.ka-blind{margin-top:14px;padding-top:10px;border-top:1px solid var(--a-line)}
.ka-blind-label{margin:0 0 8px!important;font-size:13px;font-weight:700;color:rgba(28,28,30,.85)}
.ka-blind-list{margin:0;gap:6px}
.ka-blind-list .ka-tag{color:var(--a-ink)}
.collage-share .ka-share-actions{margin-bottom:0}
.appfrag .field-help{color:var(--muted);font-size:11px;line-height:1.35;overflow-wrap:break-word}

/* ===== Home directed pass: CTA rows, blind-spots block, focus card ===== */
.cta-row{margin-top:24px}

.fblind{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.fblind-intro{margin:0 0 4px;font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}
.fblind-list{list-style:none;margin:0;padding:0}
.fblind-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:14px}
.fblind-list li:first-child{border-top:0}
.fblind-dot{width:11px;height:11px;flex:none;border-radius:50%;border:2px solid var(--red);opacity:.65}
.fblind-name{font-weight:700}
.fblind-list em{margin-left:auto;font-style:normal;color:var(--muted);font-size:13px}
.focus-frag{padding-top:4px;padding-bottom:4px}
.focus-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--a-line)}
.focus-row:first-child{border-top:0}
.focus-row strong{font-size:15px;color:var(--a-strong)}
.focus-row span{color:var(--a-muted);font-size:13.5px;font-weight:600;white-space:nowrap}

@media (max-width:900px){.fcard.span2.chart-card{grid-column:auto}}
@media (max-width:640px){.share-preview,.ka-muscles-block{display:none}.hero-actions{grid-template-columns:minmax(0,1fr)}.hero-actions .button{width:100%}.fgrid,.fmap,.home-faq,.help-grid,.home-split,.home-split.center{grid-template-columns:1fr}}

/* ===== Rework pass: share order, progression switcher, spacing fixes ===== */
.share-layout{grid-template-rows:auto auto 1fr;align-content:start;grid-template-areas:"title page" "coach page" "preview page";gap:24px 48px}
.share-title{grid-area:title;margin:0}
.share-layout .trainer-note{grid-area:coach;margin:0}


@media (max-width:900px){.share-layout{grid-template-rows:none;grid-template-areas:"title" "page" "coach" "preview";gap:24px}}
.prog-visual{display:grid;gap:16px;align-content:start}
.prog-rules{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.prog-rules strong{color:var(--ink)}
.jump-panel .prog-switcher{display:flex;width:100%;margin:0;overflow:visible}
.jump-panel .prog-switcher .switch-tab{flex:1;min-width:0;padding-inline:6px;font-size:13px;white-space:nowrap}
.ka-sugg-stack{gap:16px}
#switch .cta-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px 28px}
#switch .cta-row .text-link{margin-top:0}

/* ===== Directed pass 2: PR card CTA, merged programs card, live warm-up checks, share/progression spacing ===== */
.jump-panel{gap:16px}
.ka-sugg-stack .sugg-ex{margin:0 0 6px}
.prog-link-row{margin:20px 0 0}
#how .cta-row{margin-top:16px}
.trainer-note p{margin:0}
.trainer-note .text-link{margin-top:10px;color:var(--green-deep)}
.fcard-cta{margin-top:14px}
.prog-merge{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px}
.ka-check{width:44px;height:44px;justify-self:center;display:grid;place-items:center;padding:0;border:0;background:transparent;cursor:pointer;border-radius:12px}
.ka-check:focus-visible{outline:2px solid var(--a-accent);outline-offset:2px}
.ka-box .ka-tick{fill:none;stroke:transparent;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ka-set.done .ka-box rect{fill:var(--a-accent);stroke:var(--a-accent)}
.ka-set.done .ka-box .ka-tick{stroke:#fff}
.ka-set.done .ka-in{color:var(--a-muted)}
.ka-set.done .ka-num{color:var(--a-accent)}
[data-collage-sugg]{cursor:pointer}
@media (max-width:640px){
.share-layout{grid-template-areas:"title" "page" "coach"}
.ka-share-actions{display:none}
.prog-merge{grid-template-columns:1fr}
}
.ka-share-actions a.ka-btn{text-decoration:none}
/* ===== Docs kit videos (Instagram kit reels) ===== */
.docs-body .kit-fig{margin:0 0 20px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;text-align:center}
.docs-body .kit-fig video{display:block;margin:0 auto;width:100%;max-width:292px;height:auto;border-radius:10px;background:#000}
.docs-body .kit-fig figcaption{margin-top:10px;color:var(--muted);font-size:13.5px;line-height:1.45}
.docs-body .kit-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 20px}
.docs-body .kit-row.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.docs-body .kit-row .kit-fig{margin:0}
@media (max-width:640px){
.docs-body .kit-row,.docs-body .kit-row.two{grid-template-columns:1fr}
}

/* ===== For trainers (/trainers): Kohlrabi Coach, coming soon =====
   Built on the home page's pieces (hero, free-band, switch-band, fgrid,
   cmp-*, home-faq); only what's new to this page lives here. */
.coach-hero h1{margin:0;font-size:clamp(40px,5.4vw,68px);line-height:1.02;letter-spacing:-.055em}
.coach-hero .hero-copy>p{margin-top:24px}
.cshot{position:relative;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:26px;background:#faf4ed;box-shadow:0 1px 2px rgba(60,48,20,.05),0 22px 48px rgba(60,48,20,.14)}
.cshot img{width:100%;height:auto;aspect-ratio:600/1300;object-fit:cover;object-position:top}
.coach-phones{position:relative;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;padding:12px 0 24px}
.coach-phones .cshot-front{z-index:2}
.coach-phones .cshot-back{z-index:1;opacity:.97}
.coach-phones .cshot-l{transform:translateX(30%) rotate(-5deg) scale(.9)}
.coach-phones .cshot-r{transform:translateX(-30%) rotate(5deg) scale(.9)}
.coach-how{align-items:start}
.coach-steps{margin-top:28px}
.coach-steps li{align-items:flex-start;font-weight:500;color:var(--muted)}
.coach-steps li strong{display:block;margin-bottom:2px;color:var(--ink);font-weight:750}
.coach-steps code{padding:1px 5px;border-radius:6px;background:var(--paper-deep);color:var(--ink);font-size:.9em}
.coach-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.coach-pair .cshot:nth-child(2){margin-top:48px}
.coach-pair figcaption{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 12px;border-radius:12px;background:rgba(28,28,30,.86);color:#fff;font-size:13px;font-weight:700;text-align:center}
.ai-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 56px;padding:48px;border-radius:var(--r-band);background:#1c1c1e;color:#e9e6df}
.ai-kicker{margin:0 0 14px;font-size:clamp(48px,7vw,88px);font-weight:900;line-height:.9;letter-spacing:-.06em;color:#fff}
.ai-band .home-h2{font-size:clamp(26px,3vw,36px);color:#c9c4bb;letter-spacing:-.035em}
.ai-body p{margin:0 0 14px;color:#c9c4bb;font-size:17px;line-height:1.6}
.ai-body p:last-of-type{color:#fff}
.ai-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}
.ai-points li{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid #3a3a3d;border-radius:14px;font-weight:700}
.ai-x{flex:none;width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:#3a2422;color:#f2a49c;font-size:13px}
html.dark .ai-band{background:#0d0f0a;border:1px solid var(--line)}
.coach-grid .fvis{padding-top:18px}
.shot{height:300px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#faf4ed;-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent)}
.shot img{width:100%;height:auto}
.shot-dark{background:#2a2420}
.coach-cmp{grid-template-columns:repeat(3,minmax(0,1fr))}
.cmp-tag{flex:none;padding:3px 8px;border-radius:var(--r-chip);background:var(--paper-deep);color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}
.cmp-tag.ai{background:#f6dedb;color:#8c2a22}
html.dark .cmp-tag.ai{background:#3a2422;color:#f2a49c}
.cmp-kohl-card{border-color:var(--green);background:var(--green-soft)}
.cmp-kohl-card .cmp-top{border-color:rgba(46,125,50,.3)}
.cmp-kohl-card .cmp-top strong,.cmp-kohl-card .cmp-price{color:var(--green-deep)}
.cmp-kohl-card .cmp-price{font-size:20px;font-weight:850}
.cmp-kohl-card .cmp-label{color:var(--green-deep)}
.cmp-ok{flex:none;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:900}
html.dark .cmp-ok{color:#16210f}
.join-band{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px 56px;align-items:center;padding:48px;border-radius:var(--r-band);background:var(--green);color:#eef6e8}
.join-band .home-h2{color:#fff}
.join-band .home-lede{color:#f4faf4}
html.dark .join-band{background:#205d25}
.join-card{padding:var(--card-pad);border-radius:var(--r-card);background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.join-form{display:grid;gap:16px}
.join-form label{display:grid;gap:7px;font-size:14px;font-weight:700}
.join-form .form-hint{display:inline;margin-left:4px;color:var(--muted);font-weight:500;font-size:13px}
.join-form input,.join-form select{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit;font-weight:500}

.join-form input:focus,.join-form select:focus{outline:2px solid var(--green);outline-offset:1px;border-color:var(--green)}
.join-form input[aria-invalid="true"]{border-color:var(--red)}
.join-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.join-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}
.join-form .button{width:100%;min-height:52px;font-size:16px}
.join-form .button[disabled]{opacity:.65;cursor:progress}
/* Coach waitlist form (user 2026-11-10: nothing stretched). On desktop the two fields share a row
   and Join the waitlist is sized to its label, not the card's width. */
@media (min-width:901px){
  .join-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:14px;align-items:end}
  .join-form>*{grid-column:1 / -1}
  .join-form>label:not(.join-hp){grid-column:auto}
  .join-form>button.button,.join-form>.button.primary{justify-self:start;width:auto;padding-inline:28px}
}.join-status{margin:-4px 0 0;min-height:0;color:var(--red);font-size:14px;font-weight:650}
.join-status:empty{display:none}
.join-privacy{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.join-privacy a{color:var(--green-deep);font-weight:700}
.join-done{padding:28px 8px;text-align:center;outline:none}
.join-done-mark{width:56px;height:56px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:26px;font-weight:900}
html.dark .join-done-mark{color:#16210f}
.join-done h3{margin:0;font-size:24px;letter-spacing:-.03em}
.join-done p{margin:10px auto 0;max-width:340px;color:var(--muted);line-height:1.55}
@media (max-width:1000px){.coach-cmp{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){
  .coach-phones{max-width:560px;margin:0 auto;width:100%}
  .ai-band,.join-band{grid-template-columns:1fr;padding:36px 28px}
  .coach-pair{max-width:520px}
}
@media (max-width:760px){.coach-cmp{grid-template-columns:1fr}}
@media (max-width:600px){
  .coach-phones{grid-template-columns:1fr 1.25fr 1fr;width:calc(100% + 16px);margin-inline:-8px}
  .cshot{border-radius:18px}
  .coach-pair{gap:12px}
  .coach-pair .cshot:nth-child(2){margin-top:28px}
  .coach-pair figcaption{left:8px;right:8px;bottom:8px;padding:6px 8px;font-size:11px}
  .ai-band,.join-band{padding:28px 20px;border-radius:22px}
  .ai-body p{font-size:16px}
  .join-row{grid-template-columns:1fr}
  .shot{height:260px}
}
.coach-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
@media (max-width:900px){.coach-hero{grid-template-columns:1fr}}
/* Trainers: the coach page showcase */
.page-show{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 56px;align-items:center}
.page-kicker{margin:0 0 10px;color:var(--green-deep);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.page-url{display:inline-flex;align-items:center;gap:10px;margin:24px 0 0;padding:12px 18px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:18px;font-weight:600;color:var(--muted);box-shadow:0 8px 24px rgba(60,48,20,.06)}
.page-url svg{width:18px;height:18px;color:var(--green)}
.page-url b{color:var(--ink);font-weight:850}
.page-points{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:12px}
.page-points li{position:relative;padding-left:32px;font-size:16px;font-weight:650;line-height:1.45}
.page-points li::before{content:"\2713";position:absolute;left:0;top:0;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:900}
html.dark .page-points li::before{color:#16210f}
.page-copy .cta-row{margin-top:28px}
.page-visual{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;padding:8px 0 24px}
.page-visual .page-a{transform:rotate(-2deg)}
.page-visual .page-b{margin-top:56px;transform:rotate(2deg)}
.page-visual figcaption{position:absolute;right:12px;top:12px;padding:6px 14px;border-radius:999px;background:rgba(28,28,30,.86);color:#fff;font-size:13px;font-weight:800}
.page-visual .page-b figcaption{background:rgba(250,244,237,.94);color:#1c1c1e}
.page-extras{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap);margin-top:32px}
.page-crop{width:100%;max-width:420px;height:auto;margin:0 auto;border-radius:16px}
@media (max-width:900px){.page-show{grid-template-columns:1fr}.page-visual{max-width:560px}}
@media (max-width:600px){
  .page-visual{gap:12px}
  .page-visual .page-b{margin-top:32px}
  .page-visual figcaption{top:8px;right:8px;font-size:11px;padding:4px 10px}
  .page-url{font-size:16px;padding:10px 14px}
  .page-extras{grid-template-columns:1fr}
}

/* Getting-started closing panels: one row, two columns (audit pass 2026-10-31) */
.gs-panels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:14px}
.gs-panels .gs-panel{margin-top:0;height:100%;flex-direction:column;align-items:flex-start;gap:12px}
.gs-panels .gs-panel .button{margin-top:auto}
@media (max-width:900px){.gs-panels{grid-template-columns:1fr}.gs-panels .gs-panel{flex-direction:row;align-items:center;height:auto}.gs-panels .gs-panel .button{margin-top:0}}

/* === Audit pass 2026-10-31: spacing + consistency tightening === */
.fgrid{align-items:start}
.cmp-grid{align-items:start}
.free-band h2{font-size:clamp(34px,4.4vw,54px)}
.switch-copy .home-h2{font-size:clamp(34px,4.4vw,54px)}
#free.home-sec,#help.home-sec{padding-top:24px;padding-bottom:24px}
.trainer-note{font-size:16px}
.trainer-note .text-link{display:block;width:fit-content;margin-top:10px}
.join-band{align-items:start}
.join-form .button{min-height:46px}
.page-url{border-radius:8px}
.page-visual figcaption,.coach-pair figcaption{border-radius:8px}
html.dark .cshot{background:var(--surface)}
.footer-train{min-height:46px;padding:0 28px;font-size:16px;align-items:center}
.footer-pitch{min-height:46px;padding:0 28px}
.subpage{padding-bottom:48px}
.policy-block{padding:20px 0}
.policy-block a{color:var(--green-deep)}
.policy-updated{margin:0 0 20px}
.subpage:has(>.policy-updated)>.subpage-lede{margin-bottom:14px}
.subpage-lede{font-size:18px;line-height:1.55}
.release-card{padding:var(--card-pad)}
.credit-list article{padding:var(--card-pad) 0}
.credit-list h2 a{color:var(--green-deep);text-decoration:underline}
.credit-list h2 a::after{content:" ↗"}
.license-text pre{white-space:pre-wrap;overflow-wrap:anywhere}
.report-lede{margin-bottom:0}
.gs-card-num{border-radius:50%;background:var(--green);color:#fff}
.gs-card,.gs-panel{padding:var(--card-pad)}
.gs-cards{gap:var(--grid-gap)}
.gs-panels{gap:var(--grid-gap);margin-top:var(--grid-gap)}
.examples-section{margin-top:48px}
.examples-section>.example-workouts{margin-top:0}
.cta-hairline{margin-top:40px}
.build-cta{padding-top:40px}
.donate-hr{margin-top:40px}
.donate-card{border-radius:var(--r-card)}
.filter-chip{min-height:44px}
.kind-toggle{border-radius:8px}
.kind-toggle .switch-tab{min-height:34px;border-radius:6px}
.docs-body p{margin-bottom:16px}
.docs-body .math-block{margin-bottom:16px}
.docs-body .kit-row{margin-bottom:16px}
.docs-body>.kit-fig{max-width:320px;margin:0 auto 16px}
.analysis-panel .section-head .panel-name{font-size:17px;font-weight:700;letter-spacing:-.02em;margin:0}
@media (min-width:1101px){
.share-layout{grid-template-rows:auto auto auto;grid-template-areas:"title page" "coach page" "preview preview"}
.share-preview .scard{max-width:632px}
}
@media (min-width:901px){
.policy-block h2,.credit-list h2,.detail-h2,.policy-more{font-size:24px}
}
@media (max-width:900px){
.subpage{padding-bottom:32px}
.policy-block{padding:16px 0}
.examples-section{margin-top:36px}
.switcher.kind-toggle{display:flex}
}
@media (max-width:820px){
.docs{padding-bottom:64px}
}
@media (max-width:640px){
.help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Column packing (2026-10-31): stacked cards pack with the standard grid
   gap instead of sharing rows with taller neighbours. The comparison cards
   render as two independent stacks; the features grid's right column (PRs,
   Your look, Programs) becomes one stack at desktop widths. Below those
   widths the stacks dissolve (display:contents) and explicit order values
   restore today's arrangements. */
.cmp-stack{display:flex;flex-direction:column;gap:var(--grid-gap);min-width:0}
@media (max-width:760px){.cmp-stack{display:contents}}
.fstack{display:contents}
@media (min-width:901px){
.fstack{display:flex;flex-direction:column;gap:var(--grid-gap);min-width:0;grid-column:3;grid-row:1/4;align-self:start}
.fcard.fspan-d{grid-column:span 2}
}
@media (max-width:900px){
.fgrid .c-map{order:1}
.fgrid .c-prs{order:2}
.fgrid .chart-card{order:3}
.fgrid .c-look{order:4}
.fgrid .c-warm{order:5}
.fgrid .c-prog{order:6}
}

/* Working 1RM suggestion fragment (docs + home feature card) */
.ka-orm{display:grid;gap:10px;width:100%;padding:16px;border:1.5px solid var(--a-line);border-radius:16px;background:var(--a-raised);box-shadow:var(--a-shadow-soft);color:var(--a-ink);text-align:left}
.ka-orm-kicker{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--a-muted)}
.ka-orm-q{font-size:17px;font-weight:700;line-height:1.25}
.ka-orm-strip{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--a-line);border-radius:12px}
.ka-orm-strip>span{display:grid;gap:2px;padding:8px 12px}
.ka-orm-strip>span+span{border-left:1px solid var(--a-line)}
.ka-orm-strip em{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--a-muted)}
.ka-orm-strip b{font-size:22px;font-weight:800;line-height:1.15}
.ka-orm-strip .new b{color:var(--a-accent)}
.ka-orm-text{font-size:14px;line-height:1.45}

/* home: two short feature videos */
#watch .home-lede{max-width:640px}
.watch-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}
.watch-fig{margin:0}
.watch-fig video{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:18px;background:#000;border:1px solid var(--line)}
.watch-fig figcaption{margin-top:10px;color:var(--muted);font-size:14px;line-height:1.45}
@media (max-width:760px){.watch-grid{grid-template-columns:1fr;gap:18px}}

/* Trainers plans. Plan points use the page-points check pattern, no disc bullets. */
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:8px}
.plan-card{display:flex;flex-direction:column;gap:6px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--surface,#fff)}
.plan-card h3{margin:0;font-size:20px}
.plan-featured{border-color:var(--green);box-shadow:0 0 0 1px var(--green)}
.plan-price{margin:0;font-size:15px;color:var(--muted)}
.plan-price b{font-size:34px;color:var(--ink,inherit);letter-spacing:-.03em}
.plan-sub{margin:0;color:var(--muted);font-size:14px}.plan-footnote{margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.plan-points{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.plan-points li{position:relative;padding-left:28px;font-size:15px;line-height:1.45}
.plan-points li::before{content:"\2713";position:absolute;left:0;top:1px;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-size:11px;font-weight:900}
html.dark .plan-points li::before{color:#16210f}
.hero-price{margin:16px 0 0;font-size:17px;font-weight:700;color:var(--ink)}
/* ===== Trainers refinement: home layout system (2026-11-03) =====
   Screenshot visuals sit in compact frames like the home demos instead of
   full portrait towers; plan and comparison cards take the home card
   density; the join band closes the page. */
.page-visual .cshot img{aspect-ratio:5/7}
.coach-pair .cshot img{aspect-ratio:4/5}
.coach-grid .fvis .shot{height:260px;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-app)}
.coach-grid .fvis .shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.page-crop{width:100%;height:230px;object-fit:cover;object-position:top center}
.plan-grid{gap:var(--grid-gap)}
.plan-card{padding:var(--card-pad);border-radius:var(--r-card);gap:6px}
.plan-points{gap:7px}
/* Plan cards (2026-11-05): the same three facts on every card, read like a
   table, then a plain list of what the plan adds, with a light check. */
.plan-facts{margin:12px 0 4px;display:grid;border-top:1px solid var(--line)}
.plan-facts>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.plan-facts dt{color:var(--muted);font-size:14px}
.plan-facts dd{margin:0;font-weight:800;font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.plan-points li::before{content:"\2713";background:none;color:var(--green);width:18px;height:18px;font-size:14px;font-weight:800;top:0}
html.dark .plan-points li::before{color:var(--green)}
.plan-points li{padding-left:26px;font-size:14.5px}
.plan-points li::before{width:18px;height:18px;font-size:10px}
.cmp-grid.coach-cmp{grid-template-columns:repeat(3,minmax(0,1fr))}
.cmp-grid.coach-cmp .cmp-card{padding:18px 20px}
.coach-cmp .cmp-row{padding:6px 0}
.coach-cmp .cmp-list{gap:8px}
.coach-cmp .cmp-list li{font-size:14px}
.coach-cmp .cmp-total{font-size:24px}
@media(min-width:761px){.cmp-kohl-card .cmp-list{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}}
.coach-page .plan-footnote{max-width:min(var(--wrap),calc(100% - 48px));margin:0 auto;padding:0 0 40px}
@media(max-width:1100px){
  .cmp-grid.coach-cmp{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .cmp-grid.coach-cmp{grid-template-columns:1fr}
  .coach-grid .fvis .shot{height:210px}
  .page-crop{height:170px}
}
.ai-shot img{height:300px;object-fit:cover;object-position:top center}
@media(max-width:760px){.ai-shot img{height:200px}}

/* ===== Trainers UX pass (2026-11-05) =====
   Hero says what it is and its status, then three facts (price, clients,
   how clients join); a secondary button sits beside the primary one. */
.coach-hero h1{font-size:clamp(40px,4.9vw,62px)}
.coach-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 24px;color:var(--ink);font-size:15px;font-weight:750;letter-spacing:-.01em}
.coach-status{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:var(--r-chip);background:var(--green-soft);color:var(--green-deep);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.coach-status::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}
.hero-facts{list-style:none;max-width:540px;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r-app);background:var(--surface)}
.hero-facts li{display:grid;align-content:start;gap:3px;padding:14px 16px;min-width:0}
.hero-facts li+li{border-left:1px solid var(--line)}
.hero-facts b{color:var(--ink);font-size:20px;font-weight:850;line-height:1.15;letter-spacing:-.03em}
.hero-facts span{color:var(--muted);font-size:13px;font-weight:600;line-height:1.35}
.coach-hero .hero-actions{margin-top:28px}
.coach-hero .hero-actions .button{min-width:0;padding-inline:28px}
.coach-hero .hero-actions .button.secondary{background:var(--surface)}
@media (max-width:900px){
  .coach-kicker{justify-content:center}
  .hero-facts{margin-inline:auto}
  .hero-facts li{text-align:center}
}
@media (max-width:600px){
  .coach-kicker{font-size:14px;margin-bottom:16px}
  .hero-facts li{padding:12px 8px}
  .hero-facts b{font-size:16px}
  .hero-facts span{font-size:12px}
}

/* Trainers comparison: monthly price at 20 clients, cheapest first. */
.cmp-bars{margin:0 0 var(--grid-gap);padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.cmp-bars figcaption{margin:0 0 16px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cmp-bars ol{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cmp-bars li{display:grid;grid-template-columns:150px minmax(0,1fr) 72px;align-items:center;gap:16px;font-size:15px;font-weight:700}
.cmp-bar-track{height:14px;overflow:hidden;border-radius:999px;background:var(--paper-deep)}
.cmp-bar{display:block;height:100%;min-width:14px;border-radius:999px;background:var(--line-strong)}
.cmp-bar-val{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.cmp-bars-note{margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.cmp-bars .is-kohl{color:var(--green-deep);font-weight:850}
.cmp-bars .is-kohl .cmp-bar{background:var(--green)}
.cmp-bars .is-kohl .cmp-bar-val{color:var(--green-deep)}
@media (max-width:600px){
  .cmp-bars li{grid-template-columns:106px minmax(0,1fr) 58px;gap:10px;font-size:14px}
  .cmp-bar-track{height:12px}
}
/* The Kohlrabi card's ticks fit one column when it is a third of the row. */
@media (min-width:1101px){.cmp-kohl-card .cmp-list{display:grid;grid-template-columns:1fr}
}

/* Text links get a larger tap area without moving the layout. The inline
   rules link in the home progression card stays on its line of text. */
.text-link{position:relative}
.text-link::after{content:"";position:absolute;inset:-7px -4px}
.prog-rules .text-link{display:inline;margin-top:0}
.prog-rules .text-link::after{content:none}

/* Docs: long inline code (a CSV header, say) wraps instead of running off a phone screen. */
.docs-body :not(pre)>code{overflow-wrap:anywhere}

/* ==========================================================================
   /trainers (Kohlrabi Coach page): hero shot, steps, feature cards, AI strip,
   plan cards, comparison table, FAQ, join band. Tokens only, no new colors.
   ========================================================================== */
.coach-page .hero-link{margin:0}
.coach-page .hero-link .text-link{margin-top:18px}
.coach-solo{display:flex;justify-content:center;padding:12px 0}
.coach-solo .cshot{width:min(320px,100%)}
.coach-steps3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap);align-items:stretch}
.coach-steps3 .fcard{gap:10px}
.coach-steps3 .fcard>p{flex:0 0 auto}
.coach-steps3 .step-num{margin-bottom:2px}
.coach-img{margin:auto 0 0;padding-top:10px}
.coach-imgbox{aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-app);background:#faf4ed}
.coach-imgbox img{width:100%;height:100%;object-fit:cover;object-position:top center}
.coach-img figcaption{margin-top:10px;color:var(--muted);font-size:13px;font-weight:650;line-height:1.4}
.coach-feat4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);align-items:stretch}
.coach-feat4 .fcard>.coach-imgbox{margin-top:auto;aspect-ratio:16/8}
.coach-feat4 .fcard>p{margin-bottom:14px}
.pro-tag{display:inline-block;padding:1px 7px;border-radius:var(--r-chip);background:var(--green-soft);color:var(--green-deep);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;vertical-align:1px}
.coach-ai-strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 28px;margin-top:var(--grid-gap);padding:16px var(--card-pad);border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.coach-ai-strip p{margin:0;font-size:17px}
.coach-ai-strip ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;color:var(--muted);font-size:14px;font-weight:650}
.coach-ai-strip li::before{content:"\2715";margin-right:8px;color:var(--red);font-size:11px;font-weight:900}
/* plans */
.coach-page .plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;margin-top:0}
.coach-page .plan-card{position:relative;gap:8px}
.coach-page .plan-card h3{margin:0;font-size:20px;letter-spacing:-.03em}
.coach-page .plan-price{font-size:15px}
.coach-page .plan-price b{font-size:40px;line-height:1.1;letter-spacing:-.04em;color:var(--ink)}
.coach-page .plan-featured{background:color-mix(in srgb,var(--green-soft) 40%,var(--surface))}
.plan-flag{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--green);color:#fff;font-size:12px;font-weight:800}
.plan-fee{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 4px;padding:10px 12px;border-radius:12px;background:var(--green-soft);font-size:13px;color:var(--muted)}
.plan-fee b{color:var(--green-deep);font-size:16px;font-weight:800}
.plan-lead{margin:6px 0 0;color:var(--muted);font-size:13px;font-weight:800}
.coach-page .plan-points{flex:1;margin-top:4px}
.plan-cta{width:100%}
.plan-summary{margin:22px 0 0;text-align:center;font-size:17px;font-weight:700}
.plan-which{max-width:720px;margin:10px auto 0;text-align:center;color:var(--muted);font-size:15px;line-height:1.55}
.plan-which strong{color:var(--ink)}
.plan-footnote-in{max-width:860px;margin:14px auto 0;text-align:center;color:var(--muted);font-size:13px;line-height:1.5}
.plan-footnote-in a{color:var(--green-deep);font-weight:700}
/* comparison table */
.cmp-table-wrap{border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);overflow:hidden}
.cmp-table{width:100%;border-collapse:collapse;text-align:left}
.cmp-table th,.cmp-table td{padding:16px 20px;vertical-align:top;border-top:1px solid var(--line)}
.cmp-table thead th{border-top:0;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.cmp-table tbody th{width:20%;font-size:17px;font-weight:800;letter-spacing:-.02em}
.cmp-t-price{width:24%}
.cmp-t-price b{display:block;font-size:17px}
.cmp-t-price span{display:block;margin-top:2px;color:var(--muted);font-size:13px}
.cmp-t-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;line-height:1.45}
.cmp-table tr.is-kohl{background:var(--green-soft)}
.cmp-table tr.is-kohl th,.cmp-table tr.is-kohl .cmp-t-price b{color:var(--green-deep)}
.cmp-table tr.is-kohl+tr.is-kohl th,.cmp-table tr.is-kohl+tr.is-kohl td{border-top-color:rgba(46,125,50,.25)}
.cmp-table .cmp-tag{margin-left:4px;vertical-align:1px}
.cmp-note b{color:var(--ink)}
.cmp-bars{margin-bottom:var(--grid-gap)}
/* faq: one column, answer first */
.coach-faq{max-width:820px}
.coach-faq .faq-item:last-child{border-bottom:1px solid var(--line)}
.coach-faq .faq-answer p{margin:0 0 18px;color:var(--muted);font-size:16px;line-height:1.6}
.coach-faq .faq-answer a{color:var(--green-deep);font-weight:700}
/* join band: optional fields collapsed */
.join-more summary{cursor:pointer;color:var(--green-deep);font-size:14px;font-weight:750;list-style:none}
.join-more summary::-webkit-details-marker{display:none}
.join-more summary::before{content:"+ ";font-weight:800}
.join-more[open] summary::before{content:"\2212 "}
.join-more-body{display:grid;gap:16px;margin-top:14px}
@media (max-width:900px){
  .coach-steps3,.coach-feat4,.coach-page .plan-grid{grid-template-columns:1fr}
  .coach-solo .cshot{width:min(300px,100%)}
  .coach-ai-strip{flex-direction:column;align-items:flex-start}
}
@media (max-width:720px){
  .cmp-table,.cmp-table tbody,.cmp-table tr,.cmp-table th,.cmp-table td{display:block;width:auto}
  .cmp-table thead{position:absolute;left:-9999px}
  .cmp-table tr{padding:14px 18px;border-top:1px solid var(--line)}
  .cmp-table tr:first-child{border-top:0}
  .cmp-table th,.cmp-table td{padding:0;border:0}
  .cmp-table tbody th{width:auto;margin-bottom:2px}
  .cmp-table td+td{margin-top:8px}
  .cmp-t-price{width:auto}
}

/* ---- Global chrome (shared container, nav tag, page frame) ----
   One content width for nav, footer, heroes, sections and text pages, so the
   logo, headings and cards share a left edge. Text-only pages keep a reading
   measure (--read) but start at the same left edge. */
.subpage>*{max-width:var(--read)}
.subpage>.subpage-lede{max-width:700px}
.subpage.gs-page>*,.subpage:has(>.examples-section)>*{max-width:none}
.subpage.gs-page>h1,.subpage:has(>.examples-section)>h1{max-width:760px}
.subpage.gs-page>.subpage-lede,.subpage:has(>.examples-section)>.subpage-lede{max-width:700px}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>main{flex:1 0 auto;width:100%}
.nav-links a:has(.nav-tag){display:inline-flex;align-items:center}
.nav-links a .nav-tag{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--green-soft);color:var(--green-deep);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1.5}
.nav-links a:hover .nav-tag{background:var(--green);color:#fff}
/* /trainers fixes: flag floats so all three cards share one anatomy; lists top-aligned */
.coach-page .home-head{max-width:880px}
.coach-page .plan-flag{position:absolute;top:-13px;left:var(--card-pad)}
.coach-page .plan-points{align-content:start}
.coach-page .hero-actions{margin-top:28px}
.coach-page .hero-link .text-link{margin-top:14px}
@media (max-width:900px){.coach-page .plan-grid{gap:22px}}
.coach-page .cmp-bars li{grid-template-columns:170px minmax(0,1fr) 64px}
@media (max-width:720px){.coach-page .cmp-bars li{grid-template-columns:96px minmax(0,1fr) 54px;font-size:13px}}
@media (max-width:900px){
  .coach-hero .hero-copy,.coach-hero .coach-kicker,.coach-hero .hero-copy>p{text-align:left;justify-content:flex-start}
  .coach-hero h1{margin-inline:0}
  .coach-hero .hero-copy>p{margin-inline:0}
  .coach-solo .cshot img{aspect-ratio:600/760}
  .coach-steps3 .coach-imgbox{aspect-ratio:16/9}
  .coach-feat4 .fcard>.coach-imgbox{aspect-ratio:16/7}
  .coach-page .hero-link{text-align:center}
}
.not-found-more{margin:28px 0 0;color:var(--muted);font-size:16px}
.not-found-more a{color:var(--green-deep);font-weight:700}

/* ===== Home (src/pages/index.html): hero, proof tiles, 2x2 features, Switch + Coach pair, slim compare, FAQ ===== */
.hm-kicker{margin:0 0 14px;color:var(--green-deep);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.hero-actions{align-items:center;gap:12px 22px}
.hero-collage .collage-col-2{padding-top:72px}
.hm-proof-sec{padding-top:0}
.hm-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--grid-gap)}
.hm-tile{display:flex;flex-direction:column;gap:6px;min-width:0;padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.hm-tile h2{margin:0;font-size:22px;line-height:1.15;letter-spacing:-.035em}
.hm-tile p{margin:0;color:var(--muted);font-size:15px;line-height:1.5}
.hm-tile-vis{margin-top:auto;padding-top:18px;min-width:0}
.hm-tile-vis .ka-sugg{cursor:default}
.hm-tile-vis .ka-link-field{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hm-feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);align-items:stretch}
.hm-feats .fcard{height:100%}
.hm-feats .fcard .fvis{flex:1}
.hm-feats .fmap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;align-items:center}
.hm-feats .fmap .cg-map{max-width:230px;margin:0 auto}
.hm-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--grid-gap);align-items:stretch}
.hm-pair-card{display:flex;flex-direction:column;gap:10px;min-width:0;padding:var(--card-pad);border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface)}
.hm-pair-card .hm-h3{margin:0;font-size:clamp(24px,2.6vw,30px);line-height:1.1;letter-spacing:-.04em}
.hm-pair-card>p{margin:0;color:var(--muted);font-size:16px;line-height:1.55}
.hm-pair-card .import-steps{margin:6px 0 0}
.hm-pair-link{margin-top:auto;align-self:flex-start}
.hm-coach{border-color:var(--green);background:var(--green-soft)}
.hm-coach>p{color:var(--ink)}
.hm-coach .hm-pair-link{margin-top:auto}
.hm-pill{align-self:flex-start;padding:4px 10px;border-radius:999px;background:var(--green);color:#fff;font-size:12px;font-weight:800;letter-spacing:.02em}
.hm-cmp{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:var(--r-card);background:var(--surface);overflow:hidden;font-size:15px}
.hm-cmp th,.hm-cmp td{padding:14px 20px;text-align:left;vertical-align:top;border-top:1px solid var(--line);line-height:1.45}
.hm-cmp thead th{border-top:0;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.hm-cmp tbody th{font-weight:800;letter-spacing:-.02em;white-space:nowrap}
.hm-cmp td small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:700}
.hm-cmp .hm-cmp-kohl th,.hm-cmp .hm-cmp-kohl td{background:var(--green-soft);color:var(--green-deep);font-weight:800}
.hm-faq{max-width:820px}
.hm-faq .faq-item:last-child{border-bottom:1px solid var(--line)}
html.dark .hm-pill{color:var(--ink)}
@media (max-width:1000px){.hm-proof{grid-template-columns:1fr}.hm-tile-vis{margin-top:0}.hm-feats .fmap{grid-template-columns:1fr}}
@media (max-width:900px){.hm-feats,.hm-pair{grid-template-columns:1fr}.hero-collage .collage-col-2{padding-top:0}}
@media (max-width:640px){
  .hm-cmp,.hm-cmp tbody,.hm-cmp tr,.hm-cmp th,.hm-cmp td{display:block}
  .hm-cmp thead{display:none}
  .hm-cmp tr{padding:14px 18px;border-top:1px solid var(--line)}
  .hm-cmp tbody tr:first-child{border-top:0}
  .hm-cmp th,.hm-cmp td{padding:2px 0;border:0}
  .hm-cmp .hm-cmp-kohl th,.hm-cmp .hm-cmp-kohl td{background:none}
  .hm-cmp .hm-cmp-kohl{background:var(--green-soft)}
  .hm-cmp td{color:var(--muted)}
  .hm-cmp td small{display:inline;margin-left:8px}
  .hm-pair-card,.hm-tile{padding:18px}
}
.hm-plans{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.hm-plans li{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:15px}
.hm-plans span{color:var(--muted);text-align:right}
@media (max-width:900px){.hm-hero .hero-copy{text-align:left}.hm-hero .hero-actions{justify-items:start}.hm-hero .hero-actions .button{width:100%}}
@media (max-width:640px){
  .hm-tile-vis,.hm-feats .focus-frag{display:none}
  .hm-feats .c-warm .ka-sets .ka-set:last-child{display:none}
  .hm-feats .fmap .cg-map{max-width:170px}
  .hm-hero{padding-bottom:36px}
  .hm-proof-sec{padding-top:8px}
}
@media (max-width:640px){.hm-hero.hero{width:calc(100% - 44px)}}

/* ===== Content pages (getting started, release notes, 404, workout/program empty states) =====
   Layout lives in the shared rules above (.gs-page, .release-card, .not-found-more, .subpage);
   nothing extra is needed. Left edges follow the nav container (--wrap). */
/* Home card balance (RV1-3): no dead space from stretched cards or fixed min-heights */
.hm-feats .c-prog .prog-merge{grid-template-columns:1fr;gap:14px}
@media (min-width:901px){.hm-feats .c-prog .focus-frag{display:block}}
.hm-tile-vis{margin-top:0}
.hm-coach .hm-plans{flex:1;grid-auto-rows:1fr;margin-bottom:6px}
.hm-coach .hm-plans li{align-items:center}
.hm-feats .fmap [data-sets-muscle-list]{min-height:0}
@media (min-width:901px){.hm-feats .fmap [data-sets-muscle-list]{min-height:224px}}

/* ===== Trainers fixer pass 1 ===== */
/* Feature-card shots: same scale as the step shots (image at 72% of the frame),
   cropped at a natural boundary. --ar is frame width / height. */
.coach-feat4 .fcard>.coach-imgbox{position:relative;aspect-ratio:var(--ar,16/9);display:block}
.coach-feat4 .coach-imgbox img{position:absolute;left:calc((1 - var(--w,.72)) * 50%);width:calc(var(--w,.72) * 100%);height:auto;max-width:none;top:0;margin-top:var(--top,0)}
.coach-feat4 .coach-imgbox.fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(to bottom,transparent,#faf4ed);pointer-events:none}
html.dark .coach-feat4 .coach-imgbox.fade::after{background:linear-gradient(to bottom,transparent,var(--surface))}
.feat-pro{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.feat-pro li{font-size:15px;line-height:1.45}
/* Hero: phone frame trimmed to its content; CTAs stay on one row */
.coach-solo .cshot img{aspect-ratio:600/960}
.coach-hero .hero-actions{align-items:center;gap:12px 22px}
.coach-hero .hero-actions .text-link{white-space:nowrap}
/* FAQ uses the full content width; answers keep a readable measure */
.coach-faq,.hm-faq{max-width:none}
.coach-faq .faq-answer p,.hm-faq .faq-answer p{max-width:78ch}
/* One phone gutter (16px) for nav, hero, sections and footer */
@media (max-width:640px){
  .nav-inner,.section,.hero,.hm-hero.hero,.subpage,.footer-inner,.footer-base,.features{width:calc(100% - 32px)}
}

/* Example detail pages (/programs/*, /workouts/*): two columns on desktop */
.subpage>[data-cg$="-detail"]{max-width:none}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.detail-crumb{color:var(--muted);line-height:1.5}
.detail-crumb [aria-current]{color:var(--muted);font-weight:600}
.detail-part{margin:12px 0 0;color:var(--muted);font-size:15px}
.detail-part a{color:var(--green-deep);font-weight:700;text-underline-offset:3px}
.detail-pager{margin-top:36px}
.detail-head .example-meta{justify-content:flex-start;align-items:center;gap:8px 14px}
.detail-fact{color:var(--muted);font-size:13px;font-weight:650}
.detail-fact+.detail-fact::before{content:"\00b7";margin-right:14px;color:var(--line-strong)}
.detail-all{margin:18px 0 0}
.detail-all a{color:var(--green-deep);font-weight:700;text-decoration:none}
.detail-all a:hover{text-decoration:underline;text-underline-offset:3px}
.detail-aside .detail-map{max-width:360px;margin:26px 0 0}
.detail-body>.program-day-list,.detail-body .week-groups{max-width:none}
.week-groups{margin:0 0 26px;border-top:1px solid var(--line)}
.week-group{border-bottom:1px solid var(--line)}
.week-group summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 2px;cursor:pointer;list-style:none;font-weight:760;font-size:17px}
.week-group summary::-webkit-details-marker{display:none}
.week-group summary em{margin-left:auto;font-style:normal;color:var(--muted);font-size:13px;font-weight:600}
.week-group summary::after{content:"+";font-size:20px;font-weight:700;color:var(--green)}
.week-group[open] summary::after{content:"\2212"}
.week-group .program-day-list{margin:0 0 12px;border-top:none}
.week-group .program-day-list li:last-child{border-bottom:none}
@media (min-width:960px){
  .detail-layout{grid-template-columns:minmax(0,1fr) 380px;column-gap:64px;align-items:start}
  .detail-head,.detail-body{grid-column:1}
  .detail-head>.subpage-lede{max-width:700px}
  .detail-aside{grid-column:2;grid-row:1 / span 2;position:sticky;top:96px;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
  .detail-aside .detail-map{margin:0 auto;max-width:300px}
  .detail-body .exercise-items,.detail-body .program-day-list,.detail-body>p{max-width:none}
  .detail-body>p{max-width:700px}
}
.coach-steps3 .coach-imgbox{aspect-ratio:1.28}
.coach-steps3 .coach-imgbox{position:relative}.coach-steps3 .coach-imgbox::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;background:linear-gradient(to bottom,transparent,#faf4ed);pointer-events:none}

/* ===== Trainers fixer pass 2 ===== */
/* Phones: feature-card shots fill the frame (same scale as the step shots)
   and crop at the top part, instead of shrinking the whole screen to 72%. */
@media (max-width:600px){
  .coach-feat4 .fcard>.coach-imgbox{aspect-ratio:calc(var(--ar,1.2) * var(--w,.72) * var(--mz,1.3))}
  .coach-feat4 .coach-imgbox img{left:0;width:100%;margin-top:calc(var(--top,0%) / var(--w,.72))}
}

/* ===== Trainers fixer pass 3 ===== */
/* Feature mocks are pre-cropped at row boundaries (assets/img/coach/feat-*.webp,
   600x520): one frame size and one text-to-mock gap in all four cards. */
.coach-feat4 .fcard>.coach-imgbox{aspect-ratio:600/520;display:block;position:relative;margin-top:auto}
.coach-feat4 .fcard>.coach-imgbox img{position:static;left:auto;top:auto;margin:0;width:100%;height:100%;max-width:none;object-fit:cover}
.coach-feat4 .fcard>p{margin-bottom:18px}
.coach-feat4 .coach-imgbox::after{display:none}
@media (max-width:600px){
  .coach-feat4 .fcard>.coach-imgbox{aspect-ratio:600/520}
  .coach-feat4 .fcard>.coach-imgbox img{width:100%;margin:0}
}
/* Dark mode: the screenshots are light-theme app captures; invert them to the
   dark paper so they sit in the dark cards instead of glaring. */
html.dark .cshot,html.dark .coach-imgbox{background:var(--surface);border-color:var(--line)}
html.dark .cshot img,html.dark .coach-imgbox img{filter:invert(.9) hue-rotate(180deg) saturate(.85) brightness(1.02)}
html.dark .coach-steps3 .coach-imgbox::after{background:linear-gradient(to bottom,transparent,var(--surface))}

/* succinct home: programs card spans the row */
.hm-feats .c-prog{grid-column:1/-1}
.hm-feats .c-prog .prog-merge{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media (max-width:900px){.hm-feats .c-prog .prog-merge{grid-template-columns:1fr}}

/* ===== Device frames (image slots) =====
   <figure class="dev dev-phone|dev-browser"> wraps .dev-frame > .dev-screen > img.
   The screen has a fixed aspect ratio (--ar) so a swapped screenshot never
   shifts layout; the image fills it (object-fit:cover, top aligned).
   .dev-crop shows only the top of a phone (open bottom). .dev-dark holds the
   dark-theme twin of an image; html.dark swaps them. Slots: README "Image slots". */
.dev{--bz:#25231f;--bz-edge:rgba(255,255,255,.14);--dev-shadow:0 1px 2px rgba(60,48,20,.08),0 24px 48px -12px rgba(60,48,20,.28);margin:0;container-type:inline-size;min-width:0}
html.dark .dev{--bz:#34322d;--bz-edge:rgba(255,255,255,.1);--dev-shadow:0 1px 2px rgba(0,0,0,.4),0 24px 48px -12px rgba(0,0,0,.7)}
.dev-frame{position:relative;background:var(--bz);box-shadow:inset 0 0 0 1px var(--bz-edge),var(--dev-shadow)}
.dev-screen{position:relative;overflow:hidden;aspect-ratio:var(--ar);background:var(--paper)}
.dev-screen img{display:block;width:100%;height:100%;object-fit:cover;object-position:top center}
.dev-phone .dev-frame{padding:3.4cqw;border-radius:13cqw}
.dev-phone .dev-screen{border-radius:10cqw}
.dev-phone .dev-frame::before{content:"";position:absolute;right:-.7cqw;top:24cqw;width:.9cqw;height:12cqw;border-radius:0 1cqw 1cqw 0;background:var(--bz)}
.dev-phone.dev-crop .dev-frame{padding-bottom:0;border-radius:13cqw 13cqw 0 0;box-shadow:inset 0 0 0 1px var(--bz-edge),0 1px 2px rgba(60,48,20,.08)}
.dev-phone.dev-crop .dev-screen{border-radius:10cqw 10cqw 0 0}
.dev-phone.dev-crop .dev-frame::before{display:none}
.dev-browser .dev-frame{border-radius:12px;padding:0;background:var(--surface);box-shadow:0 0 0 1px var(--line-strong),var(--dev-shadow);overflow:hidden}
html.dark .dev-browser .dev-frame{background:#22201d;box-shadow:0 0 0 1px #46423c,var(--dev-shadow)}
.dev-bar{display:flex;align-items:center;gap:6px;height:clamp(22px,4.6cqw,30px);padding:0 12px;background:var(--paper-deep);border-bottom:1px solid var(--line)}
html.dark .dev-bar{background:#2a2825;border-color:#3a3732}
.dev-bar i{width:clamp(6px,1.2cqw,9px);aspect-ratio:1;border-radius:50%;background:var(--line-strong);opacity:.7}
.dev-bar b{flex:0 1 46%;margin:0 auto;padding:1px 0;border-radius:6px;background:var(--surface);color:var(--muted);font:600 clamp(9px,1.6cqw,11px)/1.6 var(--sans);text-align:center}
html.dark .dev-bar b{background:#1b1a18}

/* Home hero: browser + phone, layered in one grid cell */
.hero-devices{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;padding-bottom:4px}
.hero-devices .dev-browser{grid-area:1/1/2/13;margin-top:0}
.hero-devices .dev-phone{grid-area:1/9/2/13;align-self:end;margin-top:30%;position:relative;z-index:2}
.hero-devices .dev-phone .dev-frame{box-shadow:inset 0 0 0 1px var(--bz-edge),var(--dev-shadow),0 0 0 6px var(--paper)}
.hm-hero .hero-devices{align-self:center}
@media (max-width:900px){.hero-devices{max-width:560px;margin:0 auto;width:100%}}
@media (max-width:560px){.hero-devices .dev-phone{grid-area:1/8/2/13;margin-top:26%}}
/* Trainers hero: a single phone */
.coach-solo .dev-phone{width:min(290px,100%)}
@media (max-width:900px){.coach-solo .dev-phone{width:min(240px,70%)}}
/* Step images: cropped phone tops inside cards */
.coach-steps3 .fcard{overflow:hidden}
.step-dev{margin:auto 0 -24px;padding-top:14px;display:flex;justify-content:center}
.step-dev .dev-phone{width:min(230px,78%)}
.step-dev:has(.step-dev-full){margin-bottom:0}
.step-dev .step-dev-full{width:min(190px,70%)}
.step-dev .step-dev-full .dev-screen{-webkit-mask-image:none;mask-image:none;--ar:600/1300!important}

/* ===== Scroll motion (see assets/motion.js) =====
   Only transform/opacity (and stroke-dashoffset on the FIG diagram). Content
   is visible by default; html.mo is set in <head> before first paint only when
   motion is allowed, and each element animates once, when it first enters. */
@keyframes mo-rv{from{opacity:0;translate:0 16px}}
@keyframes mo-fade{from{opacity:0}}
@keyframes mo-draw{from{stroke-dashoffset:1}}
@keyframes mo-grow{from{transform:scaleX(0)}}
@keyframes mo-px{to{translate:0 -24px}}
html.mo:not(.plain):not([data-motion=off]) :is(.home-head,.fcard,.plan-card,.hm-pair-card,.fig-copy,.fig-card,.coach-faq,.hm-faq,.join-band,.plan-summary):not(.in){opacity:0}
html.mo:not(.plain):not([data-motion=off]) :is(.home-head,.fcard,.plan-card,.hm-pair-card,.fig-copy,.fig-card,.coach-faq,.hm-faq,.join-band,.plan-summary).in{animation:mo-rv .6s cubic-bezier(.2,.7,.2,1) var(--rd,0s) backwards}
html.mo:not(.plain):not([data-motion=off]) .fig-svg:not(.in) :is(.f-node,.f-lab,.f-big,.f-sub,.f-mark,.f-mark-n){opacity:0}
html.mo:not(.plain):not([data-motion=off]) .fig-svg:not(.in) .f-arrow{stroke-dasharray:1;stroke-dashoffset:1}
html.mo:not(.plain):not([data-motion=off]) .fig-svg.in :is(.f-node,.f-lab,.f-big,.f-sub,.f-mark,.f-mark-n){animation:mo-fade .5s ease var(--rd,0s) backwards}
html.mo:not(.plain):not([data-motion=off]) .fig-svg.in .f-arrow{stroke-dasharray:1;animation:mo-draw .7s ease-out var(--rd,0s) backwards}
html.mo:not(.plain):not([data-motion=off]) [data-grow]:not(.in){transform:scaleX(0)}
html.mo:not(.plain):not([data-motion=off]) [data-grow].in{transform-origin:0 50%;animation:mo-grow .8s cubic-bezier(.2,.7,.2,1) var(--rd,0s) backwards}
@supports (animation-timeline:view()){
  html.mo:not(.plain):not([data-motion=off]) .dev-px{animation:mo-px linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
}
@keyframes mo-pop{from{opacity:0;scale:.6}}
html.mo:not(.plain):not([data-motion=off]) .home-sec[data-folio]:not(.in)::after,html.mo:not(.plain):not([data-motion=off]) .zn-cap:not(.in)::after,html.mo:not(.plain):not([data-motion=off]) .import-steps li:not(.in)::after{transform:scaleX(0)}
html.mo:not(.plain):not([data-motion=off]) .import-steps li:not(.in)::after{transform:scaleY(0)}
html.mo:not(.plain):not([data-motion=off]) .home-sec[data-folio]:not(.in)::before{opacity:0}
html.mo:not(.plain):not([data-motion=off]) .zn-note:not(.in),html.mo:not(.plain):not([data-motion=off]) .zn-let:not(.in){opacity:0}
html.mo:not(.plain):not([data-motion=off]) .zn-note:not(.in) path{stroke-dasharray:1;stroke-dashoffset:1}
html.mo:not(.plain):not([data-motion=off]) .home-sec[data-folio].in::after,html.mo:not(.plain):not([data-motion=off]) .zn-cap.in::after{animation:mo-grow .9s cubic-bezier(.2,.7,.2,1) backwards}
html.mo:not(.plain):not([data-motion=off]) .import-steps li.in::after{animation:mo-growy .7s cubic-bezier(.2,.7,.2,1) calc(var(--rd,0s) + .25s) backwards}
html.mo:not(.plain):not([data-motion=off]) .home-sec[data-folio].in::before{animation:mo-fade .5s ease .1s backwards}
html.mo:not(.plain):not([data-motion=off]) .zn-note.in{animation:mo-fade .3s ease calc(var(--rd,0s) + .5s) backwards}
html.mo:not(.plain):not([data-motion=off]) .zn-note.in path{stroke-dasharray:1;animation:mo-draw .6s ease-out calc(var(--rd,0s) + .55s) backwards}
html.mo:not(.plain):not([data-motion=off]) .zn-let.in{animation:mo-pop .35s cubic-bezier(.3,1.5,.5,1) var(--rd,0s) backwards}
@keyframes mo-growy{from{transform:scaleY(0)}}
@media (prefers-reduced-motion:reduce){
  html.mo :is(.home-head,.fcard,.plan-card,.hm-pair-card,.fig-copy,.fig-card,.coach-faq,.hm-faq,.join-band,.plan-summary,.fig-svg :is(.f-node,.f-lab,.f-big,.f-sub,.f-mark,.f-mark-n,.f-arrow),[data-grow],.dev-px,.zn-note,.zn-let,.zn-note path,.import-steps li){opacity:1!important;translate:none!important;scale:none!important;animation:none!important;stroke-dashoffset:0!important;stroke-dasharray:none!important}
  html.mo :is(.home-sec[data-folio],.zn-cap,.import-steps li)::before,html.mo :is(.home-sec[data-folio],.zn-cap,.import-steps li)::after{opacity:1!important;transform:none!important;animation:none!important}
}
/* Trainers hero headline: long line, so a tuned size and measure (3 lines at 390px) */
.coach-hero h1{font-size:clamp(27px,7.4vw,36px);line-height:1.12;letter-spacing:-.035em;max-width:16em}
@media (min-width:901px){.coach-hero h1{font-size:clamp(38px,3.7vw,54px);line-height:1.08;max-width:15em}}
.coach-hero .hero-copy>p{font-size:clamp(16px,1.6vw,19px);margin-top:18px}
@media (max-width:900px){.coach-hero{padding-top:36px;padding-bottom:48px;gap:32px}}

/* Review pass: alignment, hero balance, step crops */
@media (min-width:901px){.fig-split .fig-card{justify-self:end}}
.plan-summary{text-align:left;font-size:14.5px;font-weight:500;line-height:1.55;color:var(--muted);max-width:70ch;margin-top:28px}
.plan-summary a{color:var(--green-deep)}
.coach-hero{align-items:center}
@media (min-width:901px){.coach-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);padding-bottom:56px}.coach-hero h1{font-size:clamp(36px,3.4vw,48px);max-width:none}.coach-solo{padding:0}}
.step-dev .dev-screen{-webkit-mask-image:linear-gradient(#000 72%,transparent);mask-image:linear-gradient(#000 72%,transparent)}
@media (max-width:600px){.step-dev .dev-screen{--ar:600/560!important}.step-dev .dev-phone{width:min(210px,70%)}.hero-devices .dev-browser{display:none}.hero-devices .dev-phone{grid-area:1/1/2/13;justify-self:center;width:min(230px,66%);margin-top:0}}

/* trainers hero: second sentence starts its own line on wide screens */
.coach-hero h1 .h1-line{display:block}

/* ===== Home v3: cutout collage, tabs, share, feature grid ===== */
.prog-note{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.prog-visual .prog-rules{margin:0}
.fgrid.fg3{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--grid-gap);align-items:start}
.fg3 .fg-col{display:flex;flex-direction:column;gap:var(--grid-gap);min-width:0}
.fg3 .fcard{height:auto}
.fg3 .c-warm .ka-exercise{max-width:520px}
.fg3 .fcard-cta{align-self:flex-start;margin-top:14px}
.fg3 .c-prog .prog-merge{grid-template-columns:1fr 1fr}
.fg3 .c-start .ka-row:last-child{margin-bottom:0}
.fg3 .c-start .fvis{padding-top:14px}
.share-layout{grid-template-columns:minmax(0,1fr) minmax(0,400px);grid-template-rows:auto auto 1fr;grid-template-areas:"title page" "coach page" "preview page";align-content:start}
.share-layout .share-preview{align-self:start}
.hm-pair{align-items:stretch}
@media (max-width:1000px){.fgrid.fg3{grid-template-columns:1fr}}
@media (max-width:900px){.fg3 .c-prog .prog-merge{grid-template-columns:1fr}.share-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"title" "page" "coach" "preview"}}
@media (max-width:640px){
  .hm-feats .focus-frag{display:block}
  .share-preview,.ka-muscles-block,.ka-share-actions{display:block}
  .ka-share-actions{display:grid}
  .share-preview .scard{max-width:100%}
  .hero-collage .collage-map{display:block}
}

/* Home share section: preview and link dialog stack on the left, shared page on the right */
.share-dialog-wrap{grid-area:dialog;min-width:0}
.share-visual{gap:0}
.fg3 .fg-side .c-prog .prog-merge{grid-template-columns:1fr}
@media (min-width:901px){
.share-layout{grid-template-columns:minmax(0,1fr) minmax(0,400px);grid-template-rows:auto auto auto 1fr;grid-template-areas:"title page" "coach page" "preview page" "dialog page"}
}
@media (max-width:900px){
.share-layout{grid-template-areas:"title" "dialog" "page" "coach" "preview"}
}

/* Program pages: the longer guide sections (src/data/program-guides.json) */
.detail-h3{margin:22px 0 6px;font-size:17px;letter-spacing:-.02em}
.detail-body .program-summary{font-size:18px;line-height:1.5}
.program-table-wrap{margin:14px 0 6px;overflow-x:auto}
.program-table{width:100%;border-collapse:collapse;font-size:15px}
.program-table caption{caption-side:top;text-align:left;padding:0 0 6px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.program-table th,.program-table td{padding:9px 10px 9px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.program-table thead th{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase}
.program-table tbody th{white-space:nowrap;padding-right:16px}
.program-faq{margin-top:8px;border-bottom:1px solid var(--line)}
.program-faq .faq-answer p{margin:0 0 16px}
@media (max-width:560px){.program-table tbody th{white-space:normal}}

/* Skip link: off-screen until it takes keyboard focus, then a pill at the
   top-left above the sticky menu. <main> is its target and shows no ring. */
.skip-link{position:fixed;z-index:60;top:12px;left:12px;padding:12px 18px;border-radius:12px;background:var(--ink);color:var(--paper);font-size:15px;font-weight:760;text-decoration:none;transform:translateY(-200%)}
.skip-link:focus{transform:none}
main:focus{outline:none}
/* The guide's closing panel: open the app once the four steps are read. */
.gs-panel.gs-start{border-color:var(--green);background:var(--green-soft)}

/* Text pages on a wide screen (What's new, privacy, terms, AI disclosure,
   credits): the reading column sits in the middle of the page. It used to
   hang off the left edge of the 1180px frame with a third of the screen
   empty to its right. */
@media (min-width:1100px){
  .subpage.release-notes,.subpage:has(>.policy-block),.subpage:has(>.credit-list),.subpage:has(>.agents),.subpage:has(>.hero-actions){width:min(var(--read),calc(100% - 48px))}
}

/* The menu bar lifts off the page once something has scrolled under it (html.scrolled, set in motion.js). */
.site-nav{transition:box-shadow .25s ease}
html.scrolled .site-nav{box-shadow:0 8px 24px rgba(38,40,33,.07)}
html.plain .site-nav,html[data-motion=off] .site-nav{transition:none}

/* Docs search: its own field above the page menu on phone (it used to hide inside the menu drawer) */
.docs-search-top{display:none}
@media (max-width:820px){
  .docs-search-top{display:block;padding:12px 20px 10px;background:var(--surface);border-bottom:1px solid var(--line)}
  .docs-search-top input{min-height:44px;font-size:16px}
  .docs-menu .docs-nav{margin-top:6px}
}
.program-table tbody th{white-space:nowrap;padding-right:14px}
.subpage-lede+.detail-cta{margin-top:18px}

/* L-17: a docs recording lines up with the text column (no indent) and uses the column's width, up to 420px */
.docs-body>.kit-fig{max-width:420px;margin:0 0 20px}
.docs-body>.kit-fig video{max-width:none}
@media (max-width:640px){.docs-body>.kit-fig{max-width:none;padding:10px}}
