/* BindTrue brand: logo mark, landing page (signed-out), sign-in / sign-up sheet.
   Mark = the end of a loaded barbell, plates rising toward the grip (progressive overload).
   Signature = the slate: a film clapperboard that carries a sample workout day. */

/* ---------- brand fonts ----------
   The @font-face rules Google Fonts serves for
   https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700&family=Unbounded:wght@500;600;700&display=swap
   (woff2 build served to Safari/iOS and Chrome/Firefox on macOS; snapshot 2026-09-28; the Cyrillic subsets were
   dropped on 2026-09-30, when the app became English-only). Declaring them here
   removes a render-blocking stylesheet on a third origin (DNS + TLS + a round trip, which also held back
   every module script). The font files still come from fonts.gstatic.com (CSP font-src). To update, fetch
   that URL with a Safari user agent and replace the block. */
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnj-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnx-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmQ-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmR-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnj-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnx-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmQ-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmR-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnj-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnx-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmQ-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmR-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnj-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xnx-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmQ-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmR-HYoEoeyxMI.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Onest';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/onest/v11/gNMKW3F-SZuj7xmf-HYoEoey.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtMZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtcZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtMZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtcZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtMZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwtcZfvRIkSYZH.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/unbounded/v12/Yq6W-LOTXCb04q32xlpwu8ZfvRIkSQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Metric-matched fallbacks for the landing and the sign-up sheet. Until a brand font has downloaded, text is
   set in a local font scaled to the brand font's width and vertical metrics (measured in Chrome against the
   Google woff2 files), so the swap does not re-wrap headlines. Unbounded falls back to Arial Black, or Arial Bold
   where Arial Black is missing (iOS); Onest to Arial / Arial Bold. Devices with neither (Android) keep the plain
   fallback. */
@font-face{font-family:"Onest Fallback";font-weight:400;src:local("Arial"),local("ArialMT");size-adjust:106%;ascent-override:91.5%;descent-override:28.8%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest Fallback";font-weight:700;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:100.5%;ascent-override:96.5%;descent-override:30.3%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded Fallback";font-weight:100 900;src:local("Arial Black"),local("Arial-Black");size-adjust:111%;ascent-override:89.6%;descent-override:22.1%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Unbounded Fallback B";font-weight:100 900;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:127%;ascent-override:78.3%;descent-override:19.3%;line-gap-override:0%;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.lp,.auth-sheet{
  --display:"Unbounded","Unbounded Fallback","Unbounded Fallback B","Arial Black",system-ui,sans-serif;
  --sans:"Onest","Onest Fallback",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-family:var(--sans);   /* body resolved --sans without the fallbacks; re-resolve for text that inherits */
}

/* ---------- logo (works on every existing .logo, incl. the app header) ---------- */
.logo{display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none}
.logo::before{content:"";flex:none;width:1.3em;height:1.3em;margin-right:.42em;background:var(--acc,var(--acc-dima));-webkit-mask:url(/logo-mark.svg) center/contain no-repeat;mask:url(/logo-mark.svg) center/contain no-repeat}
.top .logo{min-width:0}

/* ---------- landing shell ---------- */
.lp{background:var(--bg);color:var(--ink);overflow-x:clip}
.lp [id]{scroll-margin-top:76px}
/* keyboard focus and anchor jumps never land under the sticky top bar (WCAG 2.4.11) */
@supports selector(:has(*)){
  html:has(#lp){scroll-padding-top:calc(76px + env(safe-area-inset-top,0px))}
  .lp [id]{scroll-margin-top:0}
}
/* section targets of the in-page links take focus without drawing a ring around the whole section */
.lp [tabindex="-1"]:focus{outline:none}
.lp-wrap{max-width:1160px;margin-inline:auto;padding-inline:16px}
@media (min-width:720px){.lp-wrap{padding-inline:28px}}
/* zero-specificity resets so component classes below always win */
:where(.lp) :where(h2,h3){margin:0}
:where(.lp) :where(ul,ol){margin:0;padding:0;list-style:none}

/* Boot screen (index.html): invisible generated text in both brand fonts, so the browser fetches them at
   first paint instead of when the landing or the app renders (no late font swap, no text shift).
   Generated content keeps it out of the page text that crawlers and screen readers see. */
.boot-fonts{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.boot-fonts::before{content:"Bind";font:700 16px/1 var(--display)}
.boot-fonts::after{content:"True";font:400 16px/1 var(--sans)}
/* Static copy of the landing in index.html: for crawlers and no-JS visitors only (a <noscript> style shows it). */
.lp-static{display:none}
.lp-nojs{margin:0;padding:12px 16px;background:var(--acc-soft);border-bottom:1px solid var(--acc-line);color:var(--ink);font-size:14.5px;text-align:center}

/* skip link: first stop for keyboard users, visible only while focused */
.lp-skip{position:fixed;left:12px;top:-100px;z-index:40;padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--bg);font:600 15px/1.2 var(--sans);text-decoration:none}
.lp-skip:focus{top:calc(10px + env(safe-area-inset-top,0px))}

/* pricing-dependent copy: hidden until /api/billing/public answered (or timed out) */
.lp:not(.bill-ready) [data-bill="trial"]{visibility:hidden}
.lp:not(.bill-ready) [data-bill="beta"],
.lp[data-pricing="trial"] [data-bill="beta"],
.lp[data-pricing="beta"] [data-bill="trial"]{display:none}

/* top bar */
.lp-top{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid transparent;transition:border-color .2s;padding-top:env(safe-area-inset-top,0px)}
.lp-top.scrolled{border-bottom-color:var(--line)}
.lp-top .lp-wrap{display:flex;align-items:center;gap:8px;min-height:60px}
.lp-logo{font-size:18px;margin-right:auto;color:var(--ink);min-height:44px}
.lp-links{display:none}
.lp-top .btn{min-height:40px;padding:8px 14px;font-size:14.5px;border-radius:11px;white-space:nowrap}
.lp-top .lp-up{display:none}
@media (min-width:560px){.lp-top .lp-wrap{gap:10px}.lp-logo{font-size:19px}}
@media (min-width:720px){.lp-top .lp-up{display:inline-flex}}
/* five in-page links from 980px, always on one line */
@media (min-width:980px){
  .lp-links{display:flex;gap:2px;margin-right:8px}
  .lp-links a{padding:8px 12px;border-radius:999px;color:var(--ink-2);text-decoration:none;font:500 14.5px/1 var(--sans);white-space:nowrap;transition:color .15s,background-color .15s}
  .lp-links a:hover{color:var(--ink);background:var(--surface-2)}
}
@media (max-width:374px){.lp-logo{font-size:16px}}

/* type */
.lp-eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
.lp-eyebrow::before{content:"";flex:none;width:20px;height:3px;border-radius:2px;background:var(--acc)}
.lp-h1{font:700 clamp(36px,9.4vw,92px)/.98 var(--display);letter-spacing:-.04em;margin:0;text-wrap:balance;hyphens:manual}
.lp-h1 em{font-style:normal;color:var(--acc);white-space:nowrap}
.lp-h2{font:600 clamp(28px,5.6vw,52px)/1.04 var(--display);letter-spacing:-.035em;text-wrap:balance}
.lp-lead{font:400 clamp(17px,2.1vw,20px)/1.55 var(--sans);color:var(--ink-2);margin-top:14px;max-width:33em;text-wrap:pretty}
.lp-sub{font-size:17px;color:var(--ink-2);max-width:40em;text-wrap:pretty}
.lp-note{margin-top:16px;font-size:13.5px;color:var(--ink-3)}
/* inline SVG icons (landing.js ICON): drawn with strokes in the text colour */
.lp .ico{display:block;width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lp .ico.fill{fill:currentColor;stroke:none}
.lp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* hero: on phones the copy stays short so the slate (a sample workout day) shows on the first screen */
.lp-hero{padding-block:18px 8px}
.lp-hero>.lp-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}
@media (min-width:720px){.lp-hero{padding-block:36px 24px}.lp-lead{margin-top:20px}}
@media (min-width:980px){
  .lp-hero{padding-block:72px 104px}
  .lp-hero>.lp-wrap{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:56px}
  .lp-h1{font-size:clamp(52px,5.4vw,72px)}
}
/* chips: the training styles on one row, then "train with friends" */
.lp-chips{display:grid;gap:6px;margin-top:16px}
.lp-chips ul{display:flex;flex-wrap:wrap;gap:6px}
.lp-chips li{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 10px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);font:600 13px/1.2 var(--sans);color:var(--ink);white-space:nowrap}
.lp-chips .fr{background:var(--acc-soft);box-shadow:inset 0 0 0 1px var(--acc-line);padding-left:8px}
.lp-chips .fr .ico{width:18px;height:18px;color:var(--acc)}
@media (min-width:720px){.lp-chips{margin-top:22px;gap:8px}.lp-chips ul{gap:8px}.lp-chips li{font-size:14px;padding:6px 13px}}
.lp-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.lp-hero .lp-cta{margin-top:20px}
@media (min-width:720px){.lp-hero .lp-cta{margin-top:28px}}
.lp-cta .btn{min-height:54px;padding:14px 24px;font-size:16.5px;border-radius:14px}
/* phones: both buttons on one row */
@media (max-width:420px){.lp-hero .lp-cta .btn{flex:1 1 auto;padding-inline:14px;font-size:15.5px}}
@media (max-width:380px){.lp-hero .lp-cta .btn{font-size:15px}}
.lp-fine{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:18px;font-size:14px;color:var(--ink-2)}
/* Trial and beta fine print share one grid cell. While the billing state is unknown both hold their place
   invisibly; if it arrives after the first paint ("bill-late") the other one just turns invisible,
   so the slate below never jumps (no layout shift). */
.lp-fines{display:grid;margin-top:14px}
@media (min-width:720px){.lp-fines{margin-top:18px}}
.lp-fines>.lp-fine{grid-area:1/1;margin-top:0}
.lp:not(.bill-ready) .lp-fines>[data-bill]{display:flex;visibility:hidden}
.lp.bill-late .lp-fines>[data-bill]{display:flex}
.lp.bill-late[data-pricing="trial"] .lp-fines>[data-bill="beta"],
.lp.bill-late[data-pricing="beta"] .lp-fines>[data-bill="trial"]{visibility:hidden}
.lp-fine li{display:inline-flex;align-items:center;gap:7px}
.lp-fine li::before{content:"";width:7px;height:7px;flex:none;border-radius:50%;background:var(--acc)}

/* ---------- the slate (signature) ---------- */
.slate{--sc:var(--chalk);--sc2:var(--chalk-2);--sa:var(--on-iron-acc);position:relative;margin:0;width:100%;max-width:500px;justify-self:center}
@media (min-width:980px){.slate{transform:rotate(1.4deg);justify-self:end}}
.slate-clap{position:relative;height:50px}
.slate-clap i{position:absolute;left:0;right:0;height:22px;border-radius:5px;box-shadow:inset 0 0 0 2px var(--iron)}
.slate-clap .base{bottom:0;border-radius:5px 5px 0 0;background:repeating-linear-gradient(-60deg,var(--chalk) 0 15px,var(--iron) 15px 30px)}
.slate-clap .arm{bottom:25px;transform-origin:11px 100%;background:repeating-linear-gradient(60deg,var(--chalk) 0 15px,var(--iron) 15px 30px)}
.slate-clap .hinge{position:absolute;left:4px;bottom:17px;width:14px;height:14px;border-radius:50%;background:var(--chalk-2);box-shadow:inset 0 0 0 3px var(--iron)}
.slate.clap .arm{animation:clap 1.1s cubic-bezier(.55,0,.35,1) .25s both}
@keyframes clap{0%,45%{transform:rotate(-17deg)}72%{transform:rotate(1deg)}84%{transform:rotate(-1.6deg)}100%{transform:rotate(0)}}
.slate-board{background:var(--iron);color:var(--sc);border-radius:0 0 20px 20px;padding:16px;box-shadow:var(--shadow-lg);outline:1px solid color-mix(in srgb,var(--chalk) 6%,transparent);outline-offset:-1px}
@media (min-width:420px){.slate-board{padding:18px 20px 20px}}
.slate-meta{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) minmax(0,.85fr);margin:0;border:1.5px solid color-mix(in srgb,var(--sc) 26%,transparent);border-radius:10px;overflow:hidden}
.slate-meta>div{padding:8px 10px 9px;border-left:1.5px solid color-mix(in srgb,var(--sc) 26%,transparent);min-width:0}
.slate-meta>div:first-child{border-left:0}
.slate-meta .w{grid-column:1/-1;border-left:0;border-bottom:1.5px solid color-mix(in srgb,var(--sc) 26%,transparent)}
.slate-meta .w+div{border-left:0}
.slate-meta dt{font:500 9.5px/1.2 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--sc2)}
.slate-meta dd{margin:4px 0 0;font:600 16px/1.15 var(--display);letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slate-meta .w dd{font-size:clamp(20px,5.6vw,26px);color:var(--sc)}
.slate-meta small{font-size:.66em;color:var(--sc2);letter-spacing:0}
.slate-ex{display:grid;gap:8px;margin-top:14px}
.slate-ex li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px 8px 8px;border-radius:12px;background:color-mix(in srgb,var(--sc) 5%,transparent)}
.slate-ex li.on{background:color-mix(in srgb,var(--sa) 15%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--sa) 45%,transparent)}
.slate-ex img,.slate-ex .ph{display:block;width:56px;height:42px;border-radius:8px;object-fit:cover;background:var(--iron-2)}
.slate-ex .nm{min-width:0}
.slate-ex b{display:block;font:600 14px/1.25 var(--sans);color:var(--sc)}
.slate-ex .nm span{display:block;margin-top:2px;font:500 13px/1.2 var(--sans);color:var(--sc2);font-variant-numeric:tabular-nums}
.slate-ex em{font:650 11.5px/1.2 var(--sans);font-style:normal;color:var(--sa);text-align:right;max-width:76px}
.slate-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1.5px dashed color-mix(in srgb,var(--sc) 20%,transparent)}
.sl-rest{display:flex;align-items:center;gap:12px}
.sl-rest svg{width:52px;height:52px;transform:rotate(-90deg);flex:none}
.sl-rest circle{fill:none;stroke-width:5}
.sl-rest .trk{stroke:color-mix(in srgb,var(--sc) 14%,transparent)}
.sl-rest .val{stroke:var(--sa);stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.sl-rest small{display:block;font:500 9.5px/1.2 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--sc2)}
.sl-rest b{display:block;font:600 24px/1.1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--sc);min-width:3.1em}
.sl-dots{display:flex;gap:6px}
.sl-dots i{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--sc) 34%,transparent);font:600 11.5px/1 var(--sans);font-style:normal;color:var(--sc2);transition:background-color .3s,color .3s}
.sl-dots i.done{background:var(--sa);box-shadow:none;color:var(--iron)}
.slate figcaption{margin-top:12px;font-size:12.5px;color:var(--ink-3);text-align:center}
@media (min-width:980px){.slate figcaption{transform:rotate(-1.4deg)}}
/* 320–359px phones: the headline and the slate footer/labels would otherwise be clipped */
@media (max-width:359px){
  .lp-h1{font-size:31px}
  .slate-board{padding:14px 12px 16px}
  .slate-meta>div{padding:8px 8px 9px}
  .slate-meta dt,.sl-rest small{letter-spacing:.06em}
  .sl-rest{gap:8px}
  .sl-dots{gap:4px}
  .sl-dots i{width:24px;height:24px}
}

/* ---------- sections ---------- */
.lp-sec{padding-block:72px}
@media (min-width:980px){.lp-sec{padding-block:112px}}
.lp-sec-alt{background:var(--surface);border-block:1px solid var(--line)}
.lp-sec-h{display:grid;gap:14px;margin-bottom:36px;max-width:780px}
@media (min-width:980px){.lp-sec-h{margin-bottom:52px}}

/* how it works: each step loads one more plate onto the mark */
.lp-steps{display:grid;gap:12px;counter-reset:st}
@media (min-width:880px){.lp-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
.lp-step{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px 22px 24px;display:grid;gap:8px;align-content:start}
.lp-plates{position:relative;display:flex;align-items:center;gap:5px;height:48px;width:88px;margin-bottom:10px;padding-left:12px}
.lp-plates::before{content:"";position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;border-radius:3px;background:var(--ink)}
.lp-plates i{position:relative;display:block;width:11px;border-radius:4px;background:var(--line);box-shadow:0 0 0 2px var(--surface)}
.lp-plates i:nth-child(1){height:22px}.lp-plates i:nth-child(2){height:34px}.lp-plates i:nth-child(3){height:48px}
.lp-plates i.on{background:var(--acc)}
.lp-stepn{font:600 12px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.lp-step h3{font:600 20px/1.2 var(--display);letter-spacing:-.02em}
.lp-step p:last-child{color:var(--ink-2);font-size:15.5px}

/* training styles: one card per style the questionnaire offers, each with its own line icon */
.lp-styles{display:grid;gap:10px}
@media (min-width:640px){.lp-styles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media (min-width:1040px){.lp-styles{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}
.lp-style{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start;align-content:start;background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:18px 18px 20px}
@media (min-width:1040px){.lp-style{grid-template-columns:minmax(0,1fr);gap:20px;padding:26px 26px 28px}}
.lp-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--acc-soft);color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc-line)}
.lp-ic .ico{width:28px;height:28px;stroke-width:1.7}
.lp-style h3{font:600 18px/1.25 var(--display);letter-spacing:-.02em;padding-top:2px}
.lp-style p{margin-top:6px;color:var(--ink-2);font-size:15px}

/* challenges with friends: an example card (clearly labelled) next to the four steps */
.lp-ch-grid{display:grid;gap:36px;align-items:start}
@media (min-width:900px){.lp-ch-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}}
.lp-ch{margin:0;width:100%;max-width:520px;justify-self:center;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:18px 16px 16px;box-shadow:var(--shadow-lg)}
@media (min-width:420px){.lp-ch{padding:22px 22px 18px}}
.lp-ch-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.lp-ch-tag{font:700 11px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);padding:6px 9px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--line)}
.lp-ch-ppl{display:flex}
.lp-ch-ppl i{display:grid;place-items:center;width:30px;height:30px;margin-left:-8px;border-radius:50%;font:700 12px/1 var(--sans);font-style:normal;background:var(--surface-2);color:var(--ink-2);box-shadow:0 0 0 2px var(--surface)}
.lp-ch-ppl i:first-child{margin-left:0}
.lp-ch-t{margin-top:16px;font:600 clamp(22px,5.4vw,26px)/1.15 var(--display);letter-spacing:-.03em}
.lp-ch-m{margin-top:4px;font-size:14.5px;color:var(--ink-2)}
.lp-ch-day{display:flex;align-items:center;gap:12px;margin-top:14px;font:600 13px/1.2 var(--sans);color:var(--ink-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.lp-ch-day .bar{flex:1;height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.lp-ch-day .bar i{display:block;width:60%;height:100%;border-radius:4px;background:var(--acc)}
.lp-ch-h{display:flex;justify-content:space-between;margin-top:18px;padding:0 10px 8px;font:600 11px/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.lp-ch-lb{display:grid;gap:4px}
.lp-ch-lb li{display:grid;grid-template-columns:16px 34px minmax(0,1fr) auto 3.2em;align-items:center;gap:10px;padding:7px 10px;border-radius:12px}
.lp-ch-lb .rk{font:600 13px/1 var(--sans);color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:center}
.lp-ch-lb .av{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font:700 13.5px/1 var(--sans);background:var(--surface-2);color:var(--ink-2)}
.lp-ch :is(.c1,.av.c1){background:color-mix(in srgb,var(--p1) 22%,var(--surface));color:color-mix(in srgb,var(--p1) 62%,var(--ink))}
.lp-ch :is(.c2,.av.c2){background:color-mix(in srgb,var(--p2) 22%,var(--surface));color:color-mix(in srgb,var(--p2) 62%,var(--ink))}
.lp-ch :is(.c3,.av.c3){background:color-mix(in srgb,var(--p3) 22%,var(--surface));color:color-mix(in srgb,var(--p3) 62%,var(--ink))}
.lp-ch-lb .nm{font:600 15.5px/1.2 var(--sans);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lp-ch-lb .pf{color:var(--ink-3)}
.lp-ch-lb .pf .ico{width:19px;height:19px;stroke-width:1.7}
.lp-ch-lb .n{font:600 16px/1 var(--sans);text-align:right;font-variant-numeric:tabular-nums}
.lp-ch-lb li.me{background:var(--acc-soft);box-shadow:inset 0 0 0 1px var(--acc-line)}
.lp-ch-lb li.me .av{background:var(--acc);color:var(--acc-ink)}
.lp-ch-lb li.me .pf{color:var(--acc)}
.lp-ch-proof{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1.5px dashed var(--line);font-size:14px;color:var(--ink-2)}
.lp-ch-proof .ico{width:20px;height:20px;color:var(--acc)}
.lp-ch-steps{display:grid;gap:24px}
.lp-ch-steps li{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:start}
.lp-ch-steps li:not(:last-child)::before{content:"";position:absolute;left:21px;top:52px;bottom:-18px;width:2px;border-radius:1px;background:var(--line)}
.lp-ch-steps .k{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ink);color:var(--bg);font:600 16px/1 var(--display)}
.lp-ch-steps h3{font:600 18px/1.3 var(--display);letter-spacing:-.02em;padding-top:2px}
.lp-ch-steps p{margin-top:4px;color:var(--ink-2);font-size:15.5px}
.lp-ch-priv{display:flex;align-items:center;gap:12px;margin-top:28px;padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line);font-size:14.5px;color:var(--ink-2)}
.lp-ch-priv .ico{width:20px;height:20px;color:var(--ink)}
/* links to the public pages (/challenges, /programs: src/pages) */
.lp-more{margin-top:18px;font-size:15.5px}
.lp-more a,.lp-note a{font-weight:600;text-underline-offset:3px}

/* features: a spec sheet, each figure is something true about the product */
.lp-specs{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:22px;overflow:hidden}
@media (min-width:640px){.lp-specs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){.lp-specs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-spec{background:var(--bg);padding:24px 22px 26px;display:grid;gap:8px;align-content:start}
@media (min-width:980px){.lp-spec{padding:30px 28px 32px}}
.lp-fig{font:600 clamp(36px,5vw,48px)/1 var(--display);letter-spacing:-.045em;color:var(--acc);margin-bottom:10px;font-variant-numeric:tabular-nums}
.lp-fig small{font-size:.46em;letter-spacing:0;margin-left:.12em;color:var(--ink-2)}
.lp-spec h3{font:650 18px/1.3 var(--sans)}
.lp-spec p:last-child{color:var(--ink-2);font-size:15px}

/* programs */
.lp-progs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(232px,74%);gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:16px;padding:2px 16px 14px;margin-inline:-16px;scrollbar-width:none}
.lp-progs::-webkit-scrollbar{display:none}
.lp-progs:focus-visible{outline-offset:-2px}
@media (min-width:560px){.lp-progs{grid-auto-columns:minmax(240px,44%)}}
@media (min-width:720px){.lp-progs{scroll-padding-inline:28px;padding-inline:28px;margin-inline:-28px;grid-auto-columns:minmax(250px,36%)}}
@media (min-width:1040px){.lp-progs{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;padding:0;margin:0;gap:16px}}
@media (min-width:1180px){.lp-progs{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lp-prog{scroll-snap-align:start;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;min-width:0}
.lp-prog .ph{position:relative;aspect-ratio:4/3;background:var(--tile);overflow:hidden}
.lp-prog img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
@media (hover:hover){.lp-prog:hover img{transform:scale(1.035)}}
.lp-prog .pb{display:grid;gap:6px;padding:14px 16px 18px}
.lp-prog h3{font:600 17px/1.2 var(--display);letter-spacing:-.02em}
.lp-prog .pb p{font-size:14.5px;color:var(--ink-2)}
.lp-prog .meta{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.lp-prog.ai{border-color:var(--acc-line);box-shadow:inset 0 0 0 1px var(--acc-line)}
.lp-tag{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:7px;font:600 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:999px;background:var(--acc);color:var(--acc-ink)}
.lp-tag.star{background:var(--iron);color:var(--chalk)}
.lp-tag.star::before{content:"";width:16px;height:9px;border-radius:2px;background:repeating-linear-gradient(-60deg,var(--chalk) 0 3px,var(--iron) 3px 6px);box-shadow:0 0 0 1px var(--chalk)}
.lp-tag.beta{position:static;align-self:start;justify-self:start;background:var(--acc-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--acc-line)}
.lp-tag.model{gap:6px;background:var(--chalk);color:var(--iron);box-shadow:0 0 0 1px color-mix(in srgb,var(--iron) 14%,transparent)}
.lp-tag .ico{width:13px;height:13px}
/* a program without a photo yet: its style's line icon on a quiet tile */
.lp-ph-ic{position:absolute;inset:0;display:grid;place-items:center;color:var(--acc);background:radial-gradient(circle at 50% 55%,var(--acc-soft) 0 34%,transparent 35%),var(--tile)}
.lp-ph-ic .ico{width:76px;height:76px;stroke-width:1.2}

/* pricing */
.lp-price{display:grid;grid-template-columns:minmax(0,1fr);background:var(--bg);border:1px solid var(--line);border-radius:24px;overflow:hidden;max-width:1000px}
@media (min-width:880px){.lp-price{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}
.lp-price-main{padding:26px 22px 28px}
.lp-price-main>div{display:grid;gap:14px}
@media (min-width:880px){.lp-price-main{padding:40px 40px 42px}}
.lp-big{font:700 clamp(32px,6vw,48px)/1 var(--display);letter-spacing:-.04em}
.lp-psub{color:var(--ink-2);font-size:16px;max-width:30em}
.lp-later{font-size:14.5px;color:var(--ink-2);background:var(--surface-2);border-radius:12px;padding:12px 14px}
.lp-inv{display:flex;align-items:flex-start;gap:10px}
.lp-inv .ico{width:20px;height:20px;margin-top:1px;color:var(--acc)}
/* beta: how the free plan stays free (invite rule), as three numbered steps */
.lp-keep{display:grid;gap:12px;padding:16px 16px 14px;border-radius:16px;background:var(--acc-soft);box-shadow:inset 0 0 0 1px var(--acc-line)}
.lp-keep-t{display:flex;align-items:center;gap:9px;font:650 16px/1.3 var(--sans)}
.lp-keep-t .ico{width:21px;height:21px;color:var(--acc)}
.lp-keep ol{display:grid;gap:9px;counter-reset:keep}
.lp-keep li{position:relative;padding-left:33px;font-size:15px;counter-increment:keep}
.lp-keep li::before{content:counter(keep);position:absolute;left:0;top:0;width:23px;height:23px;border-radius:50%;background:var(--acc);color:var(--acc-ink);font:700 12.5px/23px var(--sans);text-align:center}
.lp-keep-f{font-size:13px;color:var(--ink-2)}
.lp-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:6px 0 4px}
.lp-opt{position:relative;display:grid;align-content:start;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 14px 15px;min-width:0}
.lp-opt.best{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.lp-opt .k{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font:600 13px/1.3 var(--sans);color:var(--ink-2)}
.lp-opt .k em{font-style:normal;font:700 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:4px 7px;border-radius:999px;background:var(--acc);color:var(--acc-ink)}
.lp-opt b{font:650 clamp(26px,6.5vw,32px)/1.1 var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:6px}
.lp-opt .per{font-size:13.5px;color:var(--ink-3)}
.lp-opt .lp-save{font-size:12.5px;color:var(--ink-2);margin-top:6px}
.lp-price .btn{min-height:54px;font-size:16.5px;border-radius:14px;margin-top:4px}
.lp-price-incl{padding:26px 22px 28px;background:var(--surface);border-top:1px solid var(--line);display:grid;gap:16px;align-content:start}
@media (min-width:880px){.lp-price-incl{padding:40px 36px;border-top:0;border-left:1px solid var(--line)}}
.lp-checks{display:grid;gap:12px}
.lp-checks li{position:relative;padding-left:30px;font-size:15.5px}
.lp-checks li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:var(--acc)}
.lp-checks li::after{content:"";position:absolute;left:6px;top:7px;width:5px;height:8px;border:solid var(--acc-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}

/* faq */
@media (min-width:980px){
  .lp-faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.45fr);gap:64px;align-items:start}
  .lp-faq-wrap .lp-sec-h{position:sticky;top:100px;margin-bottom:0}
}
.lp-faq{border-top:1px solid var(--line)}
.lp-q{border-bottom:1px solid var(--line)}
.lp-q summary{position:relative;list-style:none;cursor:pointer;padding:20px 44px 20px 0;font:600 17px/1.35 var(--sans);border-radius:8px}
.lp-q summary::-webkit-details-marker{display:none}
.lp-q summary::before,.lp-q summary::after{content:"";position:absolute;right:6px;top:50%;width:16px;height:2px;margin-top:-1px;border-radius:1px;background:var(--ink-2);transition:transform .2s}
.lp-q summary::after{transform:rotate(90deg)}
.lp-q[open] summary::after{transform:rotate(0)}
.lp-q summary:hover{color:var(--acc)}
.lp-a{padding:0 44px 22px 0;color:var(--ink-2);max-width:64ch}

/* final call to action: the slate stripe carries over */
.lp-final{background:var(--iron);color:var(--chalk);text-align:center}
.lp-final::before{content:"";display:block;height:14px;background:repeating-linear-gradient(-60deg,var(--chalk) 0 14px,var(--iron) 14px 28px)}
.lp-final .lp-wrap{padding-block:64px 72px;display:grid;justify-items:center;gap:14px}
@media (min-width:980px){.lp-final .lp-wrap{padding-block:96px 104px}}
.lp-final .lp-h2{max-width:14em}
.lp-final p{color:var(--chalk-2);font-size:17px}
.lp-final .lp-cta{justify-content:center;margin-top:16px}
.lp-final .btn{background:var(--on-iron-acc);color:var(--iron)}
.lp-final .btn:hover:not(:disabled){background:color-mix(in srgb,var(--on-iron-acc) 85%,#fff)}
.lp-final .btn.sec{background:color-mix(in srgb,var(--chalk) 10%,transparent);color:var(--chalk)}
.lp-final .btn.sec:hover:not(:disabled){background:color-mix(in srgb,var(--chalk) 18%,transparent)}
.lp-final :focus-visible{outline-color:var(--chalk)}

/* footer */
.lp-foot{padding-block:36px calc(48px + env(safe-area-inset-bottom,0px));font-size:13.5px;color:var(--ink-3)}
.lp-foot .lp-wrap{display:grid;gap:10px}
.lp-foot-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}
.lp-foot .logo{font-size:17px}
.lp-foot nav{display:flex;flex-wrap:wrap;gap:4px 18px;align-items:center}
.lp-foot nav a,.lp-foot .linkbtn{display:inline-block;padding-block:6px;color:var(--ink-2);font:500 14px/1.3 var(--sans);text-decoration:none}
.lp-foot nav a:hover,.lp-foot .linkbtn:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.lp-foot p{max-width:78ch}

/* ---------- sign-in / sign-up sheet ---------- */
.auth-sheet{max-width:440px;gap:0;padding-top:12px}
.auth-sheet::before{content:"";justify-self:center;width:38px;height:4px;border-radius:2px;background:var(--line);margin-bottom:10px}
@media (min-width:700px){.auth-sheet{padding:22px 26px 28px}.auth-sheet::before{display:none}}
.auth-form{display:grid;gap:16px}
.auth-head{display:flex;align-items:center;gap:8px}
.auth-head .logo{font-size:17px;margin-right:auto}
.auth-x{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:var(--surface-2);color:var(--ink-2);font:400 22px/1 var(--sans);cursor:pointer}
.auth-x:hover{color:var(--ink)}
.auth-form h2{font:600 24px/1.15 var(--display);letter-spacing:-.03em;margin:4px 0 0}
.auth-sub{margin-top:6px;font-size:14.5px}
.auth-legal{font-size:12.5px;text-align:center}
.auth-legal a{color:var(--ink-2)}
.auth-age{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.4;color:var(--ink-2);cursor:pointer}
.auth-age input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--acc)}
.auth-form .btn{min-height:52px;font-size:16px;border-radius:14px}

@media (prefers-reduced-motion: reduce){
  .slate.clap .arm{animation:none}
  .lp-prog img{transition:none}
  .lp-q summary::before,.lp-q summary::after,.sl-rest .val{transition:none}
}
