:root {
  --paper:#fcf9f6;
  --ink:#30292b;
  --muted:#75696b;
  --coral:#c43f51;
  --line:#e6dcd6;
  --font:'DM Sans',sans-serif;
  --display:'Manrope',sans-serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-height,88px) + 20px);
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.6 var(--font);
  -webkit-font-smoothing:antialiased;
}

button,a,summary {
  -webkit-tap-highlight-color:transparent;
}

a {
  color:inherit;
  text-decoration:none;
}

button {
  font:inherit;
  color:inherit;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

button,summary {
  cursor:pointer;
}

button {
  border:0;
}

h1,h2,h3,p {
  margin:0;
}

h1,h2,h3 {
  font-family:var(--display);
  font-weight:700;
}

ul,ol {
  margin:0;
  padding:0;
}

::selection {
  background:#f2c4bd;
  color:#40272d;
}

:focus-visible {
  outline:3px solid var(--coral);
  outline-offset:6px;
  border-radius:3px;
}

.container {
  width:min(1232px,calc(100% - 96px));
  margin-inline:auto;
}

.icon {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none;
}

.svg-library {
  width:0;
  height:0;
  position:absolute;
  overflow:hidden;
}

.visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.skip-link {
  position:fixed;
  top:12px;
  inset-inline-start:12px;
  z-index:30;
  padding:12px 20px;
  background:var(--ink);
  color:white;
  transform:translateY(-180%);
}

.skip-link:focus {
  transform:none;
}

.multiline {
  white-space:pre-line;
}

.eyebrow {
  font-size:11px;
  font-weight:700;
  letter-spacing:1.8px;
  line-height:1.5;
}

.coral {
  color:var(--coral);
}

.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--coral);
  margin-inline-end:9px;
  vertical-align:1px;
}

.header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(252,249,246,.97);
  border-bottom:1px solid rgba(230,220,214,.6);
}

.header-inner {
  min-height:88px;
  padding-block:12px;
  flex-wrap:wrap;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand {
  display:flex;
  align-items:center;
  gap:11px;
  flex-shrink:0;
}

.brand img {
  border-radius:11px;
}

.brand>span {
  font-family:var(--display);
  font-size:15px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:-.4px;
}

.brand>span>span {
  display:block;
}

.header nav {
  display:flex;
  align-items:center;
  gap:34px;
  font-size:13px;
  font-weight:600;
}

.header nav>a:not(.button):hover {
  color:var(--coral);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  background:var(--coral);
  color:#fff;
  padding:15px 22px;
  border-radius:100px;
  font-size:14px;
  font-weight:600;
  transition:background .2s,transform .2s;
}

.button:hover {
  background:#75434d;
  transform:translateY(-2px);
}

.button-small {
  padding:12px 21px;
  font-size:13px;
  gap:17px;
}

.button .icon {
  width:18px;
  height:18px;
}

.menu-toggle {
  display:none;
}

.hero {
  display:grid;
  grid-template-columns:1.14fr 1fr;
  gap:12px;
  align-items:center;
  padding-top:64px;
  padding-bottom:62px;
  min-height:684px;
}

.hero-copy {
  position:relative;
  z-index:2;
  padding-bottom:16px;
}

.hero h1 {
  font-size:clamp(52px,6.2vw,89px);
  line-height:1.12;
  letter-spacing:-5.5px;
  margin:25px 0 27px;
}

.hero h1 span {
  display:block;
  white-space:normal;
}

.hero-description {
  font-size:18px;
  line-height:1.7;
  max-width:405px;
  color:var(--muted);
}

.hero-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:26px;
  margin-top:32px;
}

.store-badge {
  display:inline-block;
  flex:none;
  border-radius:9px;
  transition:transform .2s;
}

.store-badge:hover {
  transform:translateY(-3px);
}

.store-badge img {
  width:188px;
  height:auto;
}

.text-link {
  font-size:13px;
  font-weight:600;
  display:inline-flex;
  align-items:center;
  gap:12px;
}

.text-link .icon {
  width:19px;
  height:19px;
  transition:transform .2s;
}

.text-link:hover .icon {
  transform:translateX(4px);
}

.text-link:hover {
  text-decoration:underline;
  text-underline-offset:5px;
}

.small-note {
  font-size:11px;
  color:var(--muted);
  margin-top:17px;
}

.hero-visual {
  height:550px;
  position:relative;
  isolation:isolate;
}

.hero-orbit {
  position:absolute;
  width:490px;
  height:490px;
  max-width:100%;
  inset-inline-end:0;
  top:24px;
  border-radius:50%;
  background:#f3dfd8;
  overflow:hidden;
  z-index:-2;
}

.hero-orbit:after {
  content:'';
  position:absolute;
  inset:28px;
  border:1px solid #ddb9b0;
  border-radius:50%;
}

.hero-orbit>span {
  position:absolute;
  inset-inline-start:28px;
  top:-35px;
  font:700 460px/1 var(--display);
  color:#eccdc3;
  transform:rotate(-12deg);
}

.phone {
  background:#342e30;
  border:6px solid #342e30;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 23px 50px -22px #47262e40;
  position:relative;
}

.phone img {
  width:100%;
  height:auto;
}

.hero-phone {
  position:absolute;
  inset-inline-end:22px;
  top:11px;
  width:234px;
  transform:rotate(7deg);
  z-index:-1;
}

.hero-trainer {
  position:absolute;
  bottom:40px;
  inset-inline-start:-36px;
  width:300px;
  filter:drop-shadow(0 20px 16px #59362c12);
  height:auto;
}

.hero-sticker {
  position:absolute;
  inset-inline-start:14px;
  bottom:33px;
  background:#fffefb;
  padding:12px 20px 12px 14px;
  border:1px solid #e9ddd5;
  box-shadow:0 6px 16px #47262e0a;
  border-radius:6px;
  transform:rotate(-7deg);
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  font-weight:600;
}

.hero-sticker .icon {
  background:var(--ink);
  color:#f2c4bd;
  border-radius:50%;
  padding:5px;
  width:28px;
  height:28px;
}

.scene-label {
  position:absolute;
  inset-inline-end:15px;
  bottom:0;
  font-size:11px;
  letter-spacing:1.4px;
  color:#79645e;
  display:flex;
  align-items:center;
  gap:20px;
}

.scene-label span {
  font-size:26px;
}

.quick-intro {
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  padding:34px 0 39px;
}

.quick-intro>div {
  display:flex;
  align-items:flex-start;
  gap:15px;
}

.quick-intro .icon {
  color:var(--coral);
  width:28px;
  height:28px;
  margin-top:2px;
}

.quick-intro h2 {
  font-size:14px;
  letter-spacing:-.25px;
  margin-bottom:5px;
}

.quick-intro p {
  font-size:12px;
  color:var(--muted);
}

.guide-section {
  background:#3d2c31;
  color:#fff7f1;
  margin-top:26px;
  padding:92px 0;
}

.guide-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:96px;
  align-items:center;
}

.section-title {
  font-size:clamp(36px,3.45vw,51px);
  letter-spacing:-2.2px;
  line-height:1.17;
  margin:21px 0 22px;
}

.section-description {
  font-size:16px;
  line-height:1.8;
  color:var(--muted);
  max-width:440px;
}

.guide-section .eyebrow {
  color:#edb7ad;
}

.guide-section .section-description {
  color:#d9c6c9;
  max-width:380px;
}

.guide-section .section-title {
  font-size:54px;
}

.check-list {
  list-style:none;
  margin:27px 0 35px;
}

.check-list li {
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:12px;
  font-size:13px;
}

.check-list .icon {
  color:#efb2a8;
  width:18px;
  height:18px;
}

.guide-section .text-link {
  color:#f3c3b9;
}

.demo-card {
  background:#fffcf9;
  color:var(--ink);
  padding:24px;
  border-radius:21px;
  box-shadow:0 16px 36px #29141b1a;
}

.demo-eyebrow {
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:11px;
  letter-spacing:1.1px;
  font-weight:700;
  gap:8px;
}

.demo-eyebrow span {
  font-size:24px;
  font-weight:400;
}

.video-wrap {
  margin:12px 0 21px;
  background:#fff;
  overflow:hidden;
  border-radius:10px;
}

.video-wrap video {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  background:#fff;
}

.exercise-picker {
  display:flex;
  gap:6px;
}

.exercise-picker[hidden] {
  display:none;
}

.exercise-picker button {
  padding:10px 8px;
  flex:1;
  background:#f2ebe7;
  border-radius:6px;
  font-size:11px;
  font-weight:500;
  transition:background .2s;
  white-space:normal;
  overflow-wrap:anywhere;
  min-width:0;
  min-height:44px;
}

.exercise-picker button[aria-pressed=true] {
  background:var(--coral);
  color:#fff;
}

.exercise-picker button:hover {
  background:#f3d6cf;
  color:var(--ink);
}

.demo-caption {
  font-size:11px;
  color:var(--muted);
  line-height:1.6;
  margin:16px 0 0;
  max-width:350px;
}

.workouts-section {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:100px;
  align-items:center;
  padding-top:112px;
  padding-bottom:110px;
}

.workouts-art {
  position:relative;
  background:#f4e4dc;
  border-radius:20px;
  padding:36px;
  overflow:hidden;
  isolation:isolate;
}

.workouts-art>.eyebrow {
  font-size:11px;
  letter-spacing:1.4px;
}

.art-title {
  font:700 38px/1.18 var(--display);
  letter-spacing:-1.7px;
  margin-top:17px;
  position:relative;
  z-index:2;
}

.art-note {
  font-size:12px;
  color:#7c655b;
  margin-top:11px;
}

.workouts-phone {
  position:absolute;
  width:240px;
  inset-inline-end:25px;
  transform:rotate(6deg);
  z-index:1;
}

.squat-cutout {
  position:absolute;
  width:220px;
  inset-inline-start:8px;
  bottom:42px;
  transform:rotate(-5deg);
  z-index:2;
}

.workouts-art:after {
  position:absolute;
  content:'';
  width:370px;
  height:370px;
  border:1px solid #dcbcac;
  border-radius:50%;
  inset-inline-start:-99px;
  bottom:-150px;
  z-index:-1;
}

.art-dots {
  position:absolute;
  inset-inline-end:31px;
  top:39px;
  display:flex;
  gap:4px;
}

.art-dots i {
  width:4px;
  height:4px;
  background:#ba9e8f;
  border-radius:50%;
}

.workout-options {
  list-style:none;
  margin-top:32px;
}

.workout-options li {
  display:flex;
  gap:19px;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}

.workout-options li:last-child {
  border-bottom:0;
}

.workout-options li>span {
  font-family:var(--display);
  font-size:11px;
  padding-top:4px;
  color:var(--coral);
  font-weight:700;
}

.workout-options h3 {
  font-size:16px;
  letter-spacing:-.4px;
  margin-bottom:6px;
}

.workout-options p {
  color:var(--muted);
  font-size:13px;
  max-width:320px;
  line-height:1.7;
}

.progress-section {
  padding-bottom:106px;
}

.progress-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:60px;
  margin-bottom:36px;
}

.progress-heading .section-title {
  margin-bottom:0;
}

.progress-heading .section-description {
  max-width:320px;
  margin-bottom:5px;
}

.progress-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:24px;
}

.weight-card {
  background:#eee5d9;
}

.trophy-card {
  background:#f7e3df;
}

.faq-section {
  border-top:1px solid var(--line);
  padding-top:85px;
  padding-bottom:94px;
  display:grid;
  grid-template-columns:1fr 1.38fr;
  gap:90px;
}

.faq-list {
  padding-top:4px;
}

.faq-item {
  border-bottom:1px solid var(--line);
}

.faq-item summary {
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:24px 0;
  font-size:15px;
  font-weight:600;
  line-height:1.5;
}

.faq-item summary::-webkit-details-marker {
  display:none;
}

.faq-item:first-child summary {
  padding-top:12px;
}

.faq-toggle {
  position:relative;
  width:18px;
  height:18px;
  flex:none;
}

.faq-toggle:before,.faq-toggle:after {
  content:'';
  position:absolute;
  width:12px;
  height:1.5px;
  inset-inline-start:3px;
  top:8px;
  background:var(--ink);
}

.faq-toggle:after {
  transform:rotate(90deg);
  transition:transform .2s;
}

.faq-item[open] .faq-toggle:after {
  transform:rotate(0);
}

.faq-item summary:hover {
  color:var(--coral);
}

.faq-answer {
  padding-block:0 24px;
  padding-inline:0 35px;
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
}

.closing-section {
  position:relative;
  min-height:460px;
  background:#f3dfd8;
  border-radius:23px;
  overflow:hidden;
  padding:55px 76px;
  isolation:isolate;
}

.closing-copy {
  position:relative;
  z-index:2;
}

.closing-copy h2 {
  font-size:67px;
  line-height:1.05;
  letter-spacing:-3.5px;
  margin:18px 0;
}

.closing-copy>p:not(.eyebrow):not(.small-note) {
  font-size:15px;
  color:#75635e;
  margin-bottom:27px;
}

.closing-copy .small-note {
  margin-top:13px;
}

.closing-orbit {
  position:absolute;
  width:480px;
  height:480px;
  inset-inline-end:53px;
  top:-10px;
  border:1px solid #ddb9b0;
  border-radius:50%;
  z-index:-1;
}

.closing-orbit:after {
  content:'';
  position:absolute;
  inset:24px;
  border:1px solid #ddb9b0;
  border-radius:50%;
}

.closing-orbit span {
  position:absolute;
  inset-inline-end:125px;
  top:-5px;
  font:700 470px/1 var(--display);
  color:#eccdc3;
  transform:rotate(10deg);
}

.footer {
  padding-top:58px;
  padding-bottom:26px;
}

.footer-top {
  display:flex;
  align-items:center;
  gap:34px;
  padding-bottom:34px;
  border-bottom:1px solid var(--line);
}

.footer-top>p {
  color:var(--muted);
  font-size:12px;
}

.footer-links {
  margin-inline-start:auto;
  display:flex;
  gap:25px;
  font-size:12px;
}

.footer a:hover {
  color:var(--coral);
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding-top:22px;
  font-size:11px;
  color:var(--muted);
}

.footer-bottom a {
  color:var(--ink);
}

@media(min-width:1600px) {
  .hero h1 {
    font-size:89px;
  }
}

@media(max-width:1150px) {
  .container {
    width:calc(100% - 64px);
  }
  .hero {
    grid-template-columns:1.05fr 1fr;
    min-height:630px;
    padding-top:48px;
    padding-bottom:48px;
  }
  .hero h1 {
    font-size:6.25vw;
    letter-spacing:-4px;
  }
  .hero-visual {
    height:510px;
  }
  .hero-phone {
    width:211px;
    inset-inline-end:8px;
  }
  .hero-trainer {
    width:260px;
    inset-inline-start:-23px;
    bottom:65px;
  }
  .hero-orbit {
    height:410px;
    width:410px;
    top:40px;
  }
  .hero-orbit>span {
    font-size:390px;
  }
  .hero-actions {
    gap:17px;
  }
  .hero-actions .text-link {
    font-size:12px;
  }
  .hero-actions .store-badge img {
    width:168px;
  }
  .guide-grid {
    gap:60px;
  }
  .guide-section .section-title {
    font-size:46px;
  }
  .workouts-section {
    gap:60px;
  }
  .workouts-art {
    padding:27px;
  }
  .workouts-phone {
    width:220px;
    inset-inline-end:14px;
  }
  .squat-cutout {
    width:180px;
    inset-inline-start:0;
    bottom:72px;
  }
  .faq-section {
    gap:60px;
  }
  .closing-orbit {
    inset-inline-end:-20px;
  }
}

@media(max-width:900px) {
  .container {
    width:calc(100% - 48px);
  }
  .header nav {
    gap:22px;
  }
  .hero {
    grid-template-columns:1.08fr 1fr;
    gap:0;
  }
  .hero h1 {
    font-size:6.2vw;
    letter-spacing:-3px;
  }
  .hero-description {
    font-size:16px;
    max-width:320px;
  }
  .hero .eyebrow {
    font-size:11px;
    letter-spacing:1.15px;
  }
  .hero-actions {
    align-items:flex-start;
    flex-direction:column;
    gap:16px;
  }
  .hero-visual {
    height:470px;
  }
  .hero-phone {
    width:187px;
    inset-inline-end:5px;
    top:17px;
  }
  .hero-trainer {
    width:235px;
    inset-inline-start:-20px;
    bottom:70px;
  }
  .hero-orbit {
    width:330px;
    height:360px;
    top:51px;
  }
  .hero-sticker {
    inset-inline-start:0;
    bottom:39px;
    font-size:11px;
    padding:10px 12px;
  }
  .scene-label {
    font-size:11px;
  }
  .quick-intro {
    gap:20px;
  }
  .quick-intro>div {
    display:block;
  }
  .quick-intro .icon {
    margin-bottom:9px;
  }
  .quick-intro h2 {
    font-size:13px;
  }
  .quick-intro p {
    font-size:11px;
  }
  .guide-section {
    padding:70px 0;
  }
  .guide-grid {
    gap:35px;
  }
  .guide-section .section-title {
    font-size:39px;
  }
  .section-description {
    font-size:15px;
  }
  .demo-card {
    padding:16px;
  }
  .demo-eyebrow {
    font-size:11px;
    letter-spacing:.5px;
  }
  .exercise-picker {
    gap:4px;
  }
  .exercise-picker button {
    font-size:11px;
    padding:10px 5px;
  }
  .check-list li {
    font-size:12px;
    gap:8px;
  }
  .section-title {
    font-size:37px;
    letter-spacing:-1.8px;
  }
  .workouts-section {
    gap:40px;
    padding-top:80px;
    padding-bottom:80px;
  }
  .workouts-art {
    padding:23px;
  }
  .art-title {
    font-size:33px;
  }
  .art-dots {
    display:none;
  }
  .workouts-phone {
    width:210px;
    inset-inline-end:15px;
  }
  .squat-cutout {
    width:165px;
    inset-inline-start:-14px;
    bottom:80px;
  }
  .workout-options li {
    gap:13px;
    padding:15px 0;
  }
  .workout-options h3 {
    font-size:14px;
  }
  .workout-options p {
    font-size:12px;
  }
  .progress-heading {
    gap:35px;
  }
  .progress-heading .section-description {
    max-width:270px;
  }
  .progress-grid {
    gap:18px;
  }
  .faq-section {
    gap:40px;
    grid-template-columns:1fr 1.3fr;
  }
  .faq-item summary {
    font-size:14px;
    gap:16px;
  }
  .closing-section {
    padding:48px;
  }
  .closing-copy h2 {
    font-size:58px;
  }
  .closing-orbit {
    inset-inline-end:-115px;
  }
  .footer-top {
    gap:22px;
    flex-wrap:wrap;
  }
  .footer-top>p {
    display:none;
  }
}

@media(max-width:760px) {
  html {
    scroll-padding-top:calc(var(--header-height,74px) + 16px);
  }
  .container {
    width:calc(100% - 40px);
  }
  .header-inner {
    height:auto;
    min-height:74px;
    flex-wrap:wrap;
    padding-block:15px;
    gap:15px;
  }
  .brand img {
    width:37px;
    height:37px;
  }
  .brand>span {
    font-size:13px;
  }
  .header nav {
    width:100%;
    justify-content:space-between;
    gap:10px;
    font-size:12px;
  }
  .header nav .button-small {
    font-size:11px;
    padding:10px 15px;
    gap:8px;
  }
  .header.enhanced .header-inner {
    min-height:74px;
    padding-block:10px;
    flex-wrap:nowrap;
  }
  .header.enhanced .menu-toggle {
    display:flex;
    align-items:center;
    gap:10px;
    background:transparent;
    font-size:12px;
    font-weight:600;
    padding-block:12px;
    padding-inline:16px 0;
  }
  .menu-toggle>span {
    width:20px;
    display:grid;
    gap:5px;
  }
  .menu-toggle i {
    display:block;
    width:20px;
    height:1px;
    background:var(--ink);
    transition:transform .2s;
  }
  .menu-toggle[aria-expanded=true] i:first-child {
    transform:translateY(3px) rotate(45deg);
  }
  .menu-toggle[aria-expanded=true] i:last-child {
    transform:translateY(-3px) rotate(-45deg);
  }
  .header.enhanced nav {
    display:none;
    position:absolute;
    top:100%;
    inset-inline-start:0;
    inset-inline-end:0;
    background:var(--paper);
    padding:16px 20px 24px;
    border-bottom:1px solid var(--line);
    box-shadow:0 14px 18px #47262e0a;
  }
  .header.enhanced .menu-toggle[aria-expanded=true]+nav {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  .header.enhanced nav>a:not(.button) {
    padding:13px 5px;
  }
  .header.enhanced nav .button {
    margin-top:10px;
    align-self:flex-start;
  }
  .hero {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    padding-top:42px;
    padding-bottom:27px;
    gap:26px;
  }
  .hero-copy {
    padding-bottom:0;
  }
  .hero .eyebrow {
    font-size:11px;
    letter-spacing:1.4px;
  }
  .hero h1 {
    font-size:clamp(41px,9.8vw,70px);
    letter-spacing:-2.7px;
    margin:21px 0;
  }
  .hero-description {
    font-size:16px;
    max-width:435px;
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:25px;
    margin-top:25px;
  }
  .hero-actions .store-badge img {
    width:167px;
  }
  .hero-actions .text-link {
    font-size:11px;
    gap:7px;
  }
  .small-note {
    font-size:11px;
    margin-top:14px;
  }
  .hero-visual {
    height:460px;
    width:440px;
    max-width:100%;
    align-self:center;
    margin-top:2px;
  }
  .hero-orbit {
    width:390px;
    height:390px;
    inset-inline-end:5px;
    top:38px;
  }
  .hero-orbit>span {
    font-size:390px;
    inset-inline-start:10px;
  }
  .hero-phone {
    width:197px;
    inset-inline-end:31px;
    top:8px;
    border-width:5px;
    border-radius:25px;
  }
  .hero-trainer {
    width:254px;
    inset-inline-start:0;
    bottom:46px;
  }
  .hero-sticker {
    inset-inline-start:20px;
    bottom:25px;
    font-size:12px;
  }
  .scene-label {
    bottom:-8px;
    inset-inline-end:24px;
    font-size:11px;
  }
  .quick-intro {
    grid-template-columns:1fr;
    gap:23px;
    padding:28px 0 32px;
  }
  .quick-intro>div {
    display:flex;
    gap:16px;
    align-items:center;
  }
  .quick-intro .icon {
    margin:0;
    width:26px;
    height:26px;
  }
  .quick-intro h2 {
    font-size:13px;
    margin-bottom:2px;
  }
  .quick-intro p {
    font-size:12px;
  }
  .guide-section {
    margin-top:14px;
    padding:58px 0;
  }
  .guide-grid {
    grid-template-columns:1fr;
    gap:35px;
  }
  .guide-section .section-title {
    font-size:42px;
  }
  .section-title {
    font-size:40px;
    letter-spacing:-1.8px;
    margin:17px 0 18px;
  }
  .section-description {
    font-size:15px;
    max-width:470px;
  }
  .guide-section .section-description {
    max-width:470px;
  }
  .check-list {
    margin:22px 0 26px;
  }
  .check-list li {
    font-size:13px;
  }
  .demo-card {
    padding:20px;
    border-radius:15px;
    max-width:490px;
    width:100%;
    justify-self:center;
  }
  .demo-eyebrow {
    font-size:11px;
    letter-spacing:1px;
  }
  .exercise-picker button {
    font-size:11px;
    padding:12px 5px;
  }
  .demo-caption {
    font-size:11px;
  }
  .video-wrap {
    margin-top:8px;
  }
  .workouts-section {
    display:flex;
    flex-direction:column-reverse;
    gap:33px;
    padding-top:65px;
    padding-bottom:65px;
    align-items:stretch;
  }
  .workouts-art {
    max-width:490px;
    width:100%;
    align-self:center;
    padding:28px;
  }
  .workouts-phone {
    width:227px;
    inset-inline-end:28px;
  }
  .art-title {
    font-size:34px;
  }
  .squat-cutout {
    width:211px;
    inset-inline-start:0;
    bottom:30px;
  }
  .art-note {
    font-size:12px;
  }
  .workout-options {
    margin-top:18px;
  }
  .workout-options h3 {
    font-size:15px;
  }
  .workout-options p {
    font-size:13px;
    max-width:420px;
  }
  .workout-options li {
    gap:16px;
    padding-block:16px;
  }
  .progress-section {
    padding-bottom:65px;
  }
  .progress-heading {
    display:block;
    margin-bottom:28px;
  }
  .progress-heading .section-description {
    max-width:470px;
    margin-top:20px;
  }
  .progress-grid {
    grid-template-columns:1fr;
    gap:18px;
  }
  .faq-section {
    grid-template-columns:1fr;
    gap:24px;
    padding-top:59px;
    padding-bottom:62px;
  }
  .faq-section .section-description {
    margin-top:10px;
  }
  .faq-item summary {
    font-size:14px;
    padding:22px 0;
  }
  .faq-answer {
    padding-inline-end:22px;
    font-size:13px;
  }
  .closing-section {
    padding:36px 28px;
    min-height:425px;
  }
  .closing-copy h2 {
    font-size:52px;
    letter-spacing:-2.4px;
  }
  .closing-copy .eyebrow {
    font-size:11px;
    letter-spacing:1.3px;
  }
  .closing-copy>p:not(.eyebrow):not(.small-note) {
    font-size:13px;
  }
  .closing-orbit {
    width:350px;
    height:350px;
    inset-inline-end:-210px;
    top:10px;
  }
  .closing-orbit span {
    font-size:360px;
    inset-inline-end:100px;
    top:0;
  }
  .closing-copy .store-badge img {
    width:165px;
  }
  .footer {
    padding-top:35px;
    padding-bottom:25px;
  }
  .footer-top {
    align-items:flex-start;
    gap:25px;
    padding-bottom:25px;
  }
  .footer-links {
    flex-direction:column;
    gap:12px;
    font-size:11px;
    margin-top:2px;
  }
  .footer-bottom {
    flex-direction:column;
    gap:13px;
    font-size:11px;
  }
  .footer-bottom p:last-child {
    max-width:270px;
  }
}

@media(max-width:390px) {
  .container {
    width:calc(100% - 32px);
  }
  .hero {
    padding-top:33px;
  }
  .hero h1 {
    letter-spacing:-2.5px;
    font-size:9.7vw;
  }
  .hero-description {
    font-size:15px;
  }
  .hero-actions {
    gap:16px;
  }
  .hero-actions .store-badge img {
    width:150px;
  }
  .hero-actions .text-link {
    font-size:11px;
    gap:4px;
  }
  .hero-actions .icon {
    width:15px;
  }
  .hero-visual {
    height:402px;
  }
  .hero-orbit {
    width:310px;
    height:323px;
    top:34px;
    inset-inline-end:0;
  }
  .hero-orbit>span {
    font-size:320px;
  }
  .hero-phone {
    width:167px;
    inset-inline-end:17px;
    top:9px;
    border-radius:22px;
  }
  .hero-trainer {
    width:207px;
    inset-inline-start:-9px;
    bottom:45px;
  }
  .hero-sticker {
    inset-inline-start:5px;
    font-size:11px;
    bottom:18px;
    padding:9px 11px;
  }
  .scene-label {
    inset-inline-end:10px;
    bottom:-11px;
    font-size:11px;
  }
  .guide-section .section-title,.section-title {
    font-size:35px;
  }
  .demo-card {
    padding:15px;
  }
  .demo-eyebrow {
    font-size:11px;
    letter-spacing:.65px;
  }
  .exercise-picker button {
    font-size:11px;
    padding:11px 5px;
  }
  .workouts-art {
    padding:25px;
  }
  .art-title {
    font-size:31px;
  }
  .workouts-phone {
    width:190px;
    inset-inline-end:19px;
  }
  .squat-cutout {
    width:175px;
    bottom:35px;
    inset-inline-start:-8px;
  }
  .closing-section {
    padding:32px 24px;
    min-height:413px;
  }
  .closing-copy h2 {
    font-size:47px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important;
  }
}
/* Without JavaScript, navigation stays visible and participates in page flow. */
@media (max-width: 760px) {
  .header:not(.enhanced) { position: relative; }
  .header:not(.enhanced) nav { flex-wrap: wrap; justify-content: flex-start; gap: 8px 20px; }
}
[hidden] { display: none !important; }
.video-start {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  background: white;
}
.video-start img { width: 100%; height: auto; }
.video-start span {
  position: absolute;
  bottom: 17px;
  inset-inline-start: 17px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 17px 10px 13px;
  border-radius: 40px;
  background: var(--ink);
  color: white;
  font-size: 12px;
  box-shadow: 0 3px 14px #30292b20;
  transition: background .2s;
}
.video-start .icon { width: 17px; height: 17px; fill: currentColor; stroke-width: 0; }
.video-start:hover span { background: #75434d; }
.video-start:focus-visible { outline-offset: -4px; }
.guide-section .section-copy :focus-visible { outline-color: #f2c4bd; }


/* Text growth and locale typography. A page uses the brand fonts only when
   build.py confirms full glyph coverage; otherwise a complete system profile. */
:where(h1,h2,h3,p,a,summary,button) { overflow-wrap:anywhere; }
html:not([lang="en"]) :where(h1,h2,h3,p,li,summary,a,button) { hyphens:auto; }
:where(.hero-copy,.section-copy,.demo-card,.progress-heading>div,.closing-copy) { min-width:0; }
.eyebrow,.demo-eyebrow,.scene-label { text-transform:uppercase; }
.scene-label { max-width:75%; }
.exercise-picker { flex-wrap:wrap; }
.exercise-picker button { font-size:13px; flex:1 1 95px; }
.demo-caption,.small-note,.footer-bottom { font-size:12px; }
.quick-intro p,.workout-options p,.faq-answer { font-size:14px; }
.hero-actions .text-link { font-size:13px; }
.hero-sticker { max-width:85%; }
.workouts-scene { position:relative; height:385px; margin-top:24px; }
.workouts-phone { top:12px; }

/* Images occupy layout tracks: more text increases the card rather than
   running underneath its screenshot. Only decorative artwork is absolute. */
.progress-card { position:relative; min-height:385px; border-radius:18px; overflow:hidden; padding:33px 28px 0; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.progress-card-copy { position:relative; min-width:0; padding-bottom:28px; }
.mini-mark { display:block; font-size:31px; line-height:1; margin-bottom:42px; }
.progress-card h3 { font-size:25px; line-height:1.24; letter-spacing:-.9px; margin-bottom:16px; }
.progress-card p { font-size:14px; line-height:1.7; color:#74635e; }
.progress-media { min-width:0; height:285px; align-self:end; padding-top:12px; }
.progress-phone { width:min(220px,92%); margin-inline:auto; transform:rotate(6deg); }
.weight-detail { width:100%; margin-top:44px; border-radius:15px; overflow:hidden; transform:rotate(6deg); box-shadow:0 18px 32px -18px #47262e35; border:1px solid #ded1c5; }
.closing-section { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); align-items:center; gap:32px; }
.closing-icon { position:relative; width:min(220px,85%); height:auto; justify-self:center; border-radius:20%; box-shadow:0 30px 50px -20px #9a53504d; transform:rotate(10deg); }
@media(max-width:900px) {
  .progress-card { grid-template-columns:minmax(0,1fr); gap:18px; padding:28px 28px 0; }
  .progress-card-copy { padding-bottom:0; }
  .mini-mark { margin-bottom:22px; }
  .progress-media { height:260px; }
  .weight-detail { width:min(270px,90%); margin:24px auto 0; }
  .progress-phone { width:210px; max-width:90%; }
}
@media(max-width:760px) {
  .closing-section { grid-template-columns:minmax(0,1fr); gap:20px; }
  .closing-icon { width:90px; justify-self:end; }
  .header:not(.enhanced) nav { flex-wrap:wrap; }
}
@media(max-width:390px) {
  .progress-card { padding-inline:24px; }
  .workouts-scene { height:335px; }
}
html[data-font="brand-manrope"] { --font:'Manrope',sans-serif; }
html:not([data-font^="brand"]) { --font:system-ui,-apple-system,"Segoe UI",sans-serif; --display:var(--font); }
html[data-font="arabic"] { --font:"Noto Sans Arabic","Geeza Pro",Tahoma,Arial,sans-serif; }
html[data-font="hebrew"] { --font:"Noto Sans Hebrew","Arial Hebrew",Arial,sans-serif; }
html[data-font="cjk-ja"] { --font:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans CJK JP",sans-serif; }
html[data-font="cjk-ko"] { --font:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR",sans-serif; }
html[data-font="cjk-zh-cn"] { --font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; }
html[data-font="cjk-zh-tw"] { --font:"PingFang TC","Microsoft JhengHei","Noto Sans CJK TC",sans-serif; }
html[data-font="thai"] { --font:"Thonburi","Leelawadee UI","Noto Sans Thai",Tahoma,sans-serif; }
html:not([data-font^="brand"]) :is(h1,h2,h3,.art-title) { letter-spacing:normal; }
html:is([data-font^="cjk"],[data-font="thai"]) :is(.eyebrow,.demo-eyebrow,.scene-label,.brand>span) { letter-spacing:normal; }
html[data-font="cjk-ko"] :is(h1,h2,h3,p) { word-break:keep-all; }
html[dir="rtl"] :is(h1,h2,h3,p,a,button,summary,.eyebrow,.scene-label) { letter-spacing:normal; text-transform:none; }
html[dir="rtl"] .text-link .icon,html[dir="rtl"] .button .icon { transform:scaleX(-1); }
html[dir="rtl"] .text-link:hover .icon { transform:scaleX(-1) translateX(4px); }
.language-switcher { position:relative; margin-block:24px; font:14px/1.6 system-ui,sans-serif; }
.language-switcher summary { padding:12px; border:1px solid var(--line); border-radius:8px; width:fit-content; }
.language-switcher ul { list-style:none; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:4px; margin-top:12px; }
.language-switcher a { display:block; padding:10px 12px; border-radius:6px; }
.language-switcher a:hover,.language-switcher [aria-current="page"] { background:#f3dfd8; }

/* Header language selector: compact <details>, plain links, works without JS. */
.lang-menu { position:relative; flex:none; }
.lang-menu summary { list-style:none; display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 14px; border:1px solid var(--line); border-radius:100px; font-size:13px; font-weight:600; }
.lang-menu summary::-webkit-details-marker { display:none; }
.lang-menu summary:hover,.lang-menu[open] summary { border-color:var(--coral); color:var(--coral); }
.lang-menu .icon { width:18px; height:18px; }
.lang-code { display:none; }
.lang-list { position:absolute; top:calc(100% + 8px); inset-inline-end:0; z-index:30; width:min(540px,calc(100vw - 32px)); max-height:min(70vh,520px); overflow:auto; list-style:none; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:2px; padding:10px; background:var(--paper); border:1px solid var(--line); border-radius:14px; box-shadow:0 18px 40px #47262e1f; font:14px/1.4 system-ui,sans-serif; }
.lang-list a { display:block; padding:10px 12px; border-radius:8px; }
.lang-list a:hover,.lang-list [aria-current="page"] { background:#f3dfd8; }
@media(max-width:1150px) and (min-width:761px) {
  .lang-current { display:none; }
  .lang-code { display:inline; }
}
@media(max-width:760px) {
  .lang-current { display:none; }
  .lang-code { display:inline; }
  .header.enhanced .lang-menu { order:1; margin-inline-start:auto; }
  .header.enhanced .menu-toggle { order:2; }
  .header.enhanced .lang-list { position:fixed; top:var(--header-height,74px); inset-inline:16px; width:auto; }
}
@media(min-width:761px) {
  .header nav { margin-inline-start:auto; }
}
