/*
 * ASKCARBI_PERSONAL_TRAINER_UI_V1
 * Personal Trainer workout selection center.
 */

#carbi-personal-trainer-app {
  position: fixed;
  inset: 0;
  z-index: 2147483645;
  overflow-y: auto;
  box-sizing: border-box;
  padding:
    max(18px, env(safe-area-inset-top))
    14px
    calc(100px + env(safe-area-inset-bottom));

  background:
    radial-gradient(circle at 50% 0%, rgba(16,110,170,.22), transparent 35%),
    linear-gradient(180deg,#07131f 0%,#0b1d2e 52%,#07131f 100%);

  color: #f4fbff;
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

#carbi-personal-trainer-app[hidden] {
  display: none !important;
}

#carbi-personal-trainer-app .cpt-shell {
  width: min(100%,760px);
  margin: 0 auto;
}

#carbi-personal-trainer-app .cpt-header {
  display: grid;
  grid-template-columns: 48px minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  margin-bottom: 24px;
}

#carbi-personal-trainer-app .cpt-header > button {
  width: 46px;
  height: 46px;
  border: 1px solid rgba(132,221,255,.45);
  border-radius: 14px;
  background: rgba(18,54,78,.88);
  color: white;
  font-size: 24px;
}

#carbi-personal-trainer-app .cpt-header small {
  color: #75dfff;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .15em;
}

#carbi-personal-trainer-app .cpt-header h2 {
  margin: 2px 0;
  font-size: clamp(24px,7vw,36px);
  line-height: 1.05;
}

#carbi-personal-trainer-app .cpt-header p {
  margin: 5px 0 0;
  color: #b7cbd8;
  font-size: 13px;
}

#carbi-personal-trainer-app .cpt-live {
  padding: 7px 9px;
  border: 1px solid rgba(74,224,171,.5);
  border-radius: 999px;
  background: rgba(22,91,69,.34);
  color: #7df0c0;
  font-size: 10px;
  font-weight: 900;
}

#carbi-personal-trainer-app section {
  margin: 22px 0;
}

#carbi-personal-trainer-app h3 {
  margin: 0 0 4px;
  font-size: 19px;
}

#carbi-personal-trainer-app .cpt-help {
  margin: 0 0 14px;
  color: #9eb5c5;
  font-size: 13px;
}

#carbi-personal-trainer-app .cpt-workouts {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 11px;
}

#carbi-personal-trainer-app .cpt-workout {
  min-width: 0;
  min-height: 126px;
  display: grid;
  grid-template-rows: auto auto 1fr;
  justify-items: start;
  gap: 5px;
  padding: 15px;
  border: 1px solid rgba(124,181,208,.32);
  border-radius: 18px;
  background:
    linear-gradient(145deg,rgba(20,52,74,.96),rgba(9,31,48,.96));
  color: #fff;
  text-align: left;
  font: inherit;
  box-shadow: 0 8px 22px rgba(0,0,0,.16);
}

#carbi-personal-trainer-app .cpt-workout.selected {
  border-color: #69dcff;
  background:
    linear-gradient(145deg,rgba(11,101,151,.98),rgba(16,64,126,.98));
  box-shadow:
    0 0 0 2px rgba(89,216,255,.14),
    0 0 24px rgba(0,183,255,.22);
}

#carbi-personal-trainer-app .cpt-symbol {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  margin-bottom: 3px;
  border-radius: 13px;
  background: rgba(255,255,255,.10);
  font-size: 27px;
}

#carbi-personal-trainer-app .cpt-workout strong {
  font-size: 16px;
}

#carbi-personal-trainer-app .cpt-workout small {
  color: #afc6d5;
  line-height: 1.25;
  font-size: 12px;
}

#carbi-personal-trainer-app .cpt-workout.selected small {
  color: #e0f7ff;
}

#carbi-personal-trainer-app .cpt-times {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 7px;
}

#carbi-personal-trainer-app .cpt-times button {
  min-height: 48px;
  padding: 8px 4px;
  border: 1px solid rgba(128,183,207,.35);
  border-radius: 13px;
  background: rgba(17,48,69,.95);
  color: #dbeaf2;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
}

#carbi-personal-trainer-app .cpt-times button.selected {
  border-color: #67dfff;
  background: #126fa7;
  color: #fff;
  box-shadow: 0 0 18px rgba(0,194,255,.25);
}

#carbi-personal-trainer-app .cpt-ready {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 13px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(105,220,255,.4);
  border-radius: 18px;
  background: rgba(13,53,76,.72);
}

#carbi-personal-trainer-app .cpt-ready > span {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(53,199,255,.14);
  font-size: 26px;
}

#carbi-personal-trainer-app .cpt-ready strong {
  display: block;
  margin-bottom: 4px;
}

#carbi-personal-trainer-app .cpt-ready p {
  margin: 0;
  color: #b9ccd8;
  font-size: 12px;
  line-height: 1.45;
}

#carbi-personal-trainer-app .cpt-start {
  position: sticky;
  bottom: calc(12px + env(safe-area-inset-bottom));
  width: 100%;
  min-height: 58px;
  margin-top: 10px;
  border: 1px solid #70e4ff;
  border-radius: 17px;
  background:
    linear-gradient(110deg,#0c7eb9,#155bd0);
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .04em;
  box-shadow:
    0 10px 30px rgba(0,0,0,.34),
    0 0 24px rgba(0,190,255,.22);
}

#carbi-personal-trainer-app .cpt-status {
  min-height: 22px;
  text-align: center;
  color: #a9dced;
  font-size: 12px;
}

@media (min-width:600px) {
  #carbi-personal-trainer-app .cpt-workouts {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media (max-width:390px) {
  #carbi-personal-trainer-app .cpt-times {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

/* ASKCARBI_TRAINER_EXERCISE_VISUAL_UI_V1 */

#carbi-personal-trainer-app .carbi-trainer-exercise-visual {
  box-sizing: border-box;
  width: 100%;
  margin: 18px 0;
  padding: 18px;
  border: 1px solid rgba(80,215,255,.55);
  border-radius: 22px;
  background: linear-gradient(
    145deg,
    rgba(9,38,61,.98),
    rgba(10,71,108,.96)
  );
  color: white;
  box-shadow:
    0 12px 32px rgba(0,0,0,.28),
    0 0 22px rgba(0,190,255,.12);
}

#carbi-personal-trainer-app .ctev-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

#carbi-personal-trainer-app .ctev-heading > span {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  background: rgba(255,255,255,.10);
  font-size: 29px;
}

#carbi-personal-trainer-app .ctev-heading strong {
  display: block;
  font-size: 18px;
  line-height: 1.2;
}

#carbi-personal-trainer-app .ctev-heading small {
  display: block;
  margin-top: 4px;
  color: #aeeeff;
  font-size: 12px;
}

#carbi-personal-trainer-app .ctev-demo {
  position: relative;
  overflow: hidden;
  min-height: 190px;
  display: grid;
  place-items: center;
  margin: 12px 0;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  background: rgba(3,20,34,.65);
}

#carbi-personal-trainer-app .ctev-demo img {
  display: block;
  width: 100%;
  max-height: 300px;
  object-fit: contain;
  border-radius: 16px;
}

/* ASKCARBI_TRAINER_EXERCISE_VISUAL_UI_V1_PART2 */

#carbi-personal-trainer-app .ctev-steps {
  display: grid;
  gap: 9px;
  margin: 14px 0 0;
}

#carbi-personal-trainer-app .ctev-step {
  display: grid;
  grid-template-columns: 35px minmax(0,1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 13px;
  background: rgba(255,255,255,.055);
}

#carbi-personal-trainer-app .ctev-step > b {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(54,205,255,.17);
  color: #bff3ff;
  font-size: 13px;
}

#carbi-personal-trainer-app .ctev-step > span {
  color: #e9f8ff;
  font-size: 13px;
  line-height: 1.4;
}

#carbi-personal-trainer-app .ctev-tip {
  margin: 13px 0 0;
  padding: 11px 13px;
  border-left: 3px solid #55d9ff;
  border-radius: 8px;
  background: rgba(52,196,255,.08);
  color: #cceefa;
  font-size: 12px;
  line-height: 1.45;
}

#carbi-personal-trainer-app .ctev-motion {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 170px;
  padding: 14px;
  text-align: center;
}

#carbi-personal-trainer-app .ctev-motion-figure {
  font-size: 82px;
  line-height: 1;
  transform-origin: center;
  animation: carbiExerciseDemo 1.8s ease-in-out infinite;
}

@keyframes carbiExerciseDemo {
  0%,100% {
    transform: translateY(0) scale(1);
  }

  50% {
    transform: translateY(-8px) scale(1.04);
  }
}

@media (prefers-reduced-motion: reduce) {
  #carbi-personal-trainer-app .ctev-motion-figure {
    animation: none;
  }
}

@media (max-width:430px) {
  #carbi-personal-trainer-app .carbi-trainer-exercise-visual {
    padding: 14px;
    border-radius: 18px;
  }

  #carbi-personal-trainer-app .ctev-demo {
    min-height: 160px;
  }

  #carbi-personal-trainer-app .ctev-motion-figure {
    font-size: 70px;
  }
}

/* ASKCARBI_TRAINER_AVATAR_MOTION_V1 */

#carbi-trainer-avatar-v1 {
  width: 100%;
  min-height: 300px;
  display: grid;
  place-items: center;
  overflow: hidden;
}

#carbi-trainer-avatar-v1 .cta-person {
  position: relative;
  width: 150px;
  height: 250px;
  transform-origin: 50% 90%;
}

#carbi-trainer-avatar-v1 .cta-arm-left,
#carbi-trainer-avatar-v1 .cta-arm-right,
#carbi-trainer-avatar-v1 .cta-leg-left,
#carbi-trainer-avatar-v1 .cta-leg-right {
  transform-box: fill-box;
  transform-origin: top center;
}

/* ARM CIRCLES */

.cta-move-arm-circles .cta-arm-left {
  animation: cta-arm-left 1.1s linear infinite;
}

.cta-move-arm-circles .cta-arm-right {
  animation: cta-arm-right 1.1s linear infinite;
}

@keyframes cta-arm-left {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(105deg); }
}

@keyframes cta-arm-right {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-105deg); }
}

/* SQUATS */

.cta-person.cta-move-squats {
  animation: cta-squat 1.6s ease-in-out infinite;
}

@keyframes cta-squat {
  0%,100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(38px) scaleY(.84); }
}

/* CURLS */

.cta-move-curls .cta-arm-left,
.cta-move-curls .cta-arm-right {
  animation: cta-curl 1.2s ease-in-out infinite;
}

@keyframes cta-curl {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-80deg); }
}

/* MARCH */

.cta-move-march .cta-leg-left {
  animation: cta-march-left .8s ease-in-out infinite;
}

.cta-move-march .cta-leg-right {
  animation: cta-march-right .8s ease-in-out infinite;
}

@keyframes cta-march-left {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-30deg); }
}

@keyframes cta-march-right {
  0%,100% { transform: rotate(-30deg); }
  50% { transform: rotate(0deg); }
}

/* STRETCH */

.cta-person.cta-move-stretch {
  animation: cta-stretch 2s ease-in-out infinite;
}

@keyframes cta-stretch {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(8deg); }
}


/* ASKCARBI_TRAINER_AVATAR_VISIBLE_BODY_V1 */

#carbi-trainer-avatar-v1 .cta-stage {
  width: 100%;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#carbi-trainer-avatar-v1 .cta-person {
  position: relative;
  width: 150px;
  height: 230px;
  margin: 10px auto 14px;
}

#carbi-trainer-avatar-v1 .cta-head {
  position: absolute;
  top: 0;
  left: 50%;
  width: 58px;
  height: 58px;
  transform: translateX(-50%);
  border: 3px solid #42d9ff;
  border-radius: 50%;
  background: #173a5a;
  box-shadow: 0 0 18px rgba(66,217,255,.45);
}

#carbi-trainer-avatar-v1 .cta-visor {
  position: absolute;
  left: 9px;
  right: 9px;
  top: 20px;
  height: 13px;
  border-radius: 10px;
  background: #29c8ff;
  box-shadow: 0 0 10px rgba(41,200,255,.8);
}

#carbi-trainer-avatar-v1 .cta-neck {
  position: absolute;
  top: 56px;
  left: 50%;
  width: 16px;
  height: 15px;
  transform: translateX(-50%);
  background: #7bdfff;
  border-radius: 5px;
}

#carbi-trainer-avatar-v1 .cta-body {
  position: absolute;
  top: 70px;
  left: 50%;
  width: 126px;
  height: 92px;
  transform: translateX(-50%);
}

#carbi-trainer-avatar-v1 .cta-torso {
  position: absolute;
  top: 0;
  left: 50%;
  width: 68px;
  height: 92px;
  transform: translateX(-50%);
  border: 3px solid #42d9ff;
  border-radius: 22px 22px 16px 16px;
  background: #17639a;
  box-shadow: 0 0 16px rgba(66,217,255,.3);
  display: grid;
  place-items: center;
}

#carbi-trainer-avatar-v1 .cta-torso span {
  font-size: 30px;
  font-weight: 800;
  color: white;
}

#carbi-trainer-avatar-v1 .cta-arm {
  position: absolute;
  top: 8px;
  width: 18px;
  height: 72px;
  border-radius: 12px;
  background: #42d9ff;
  transform-origin: 50% 8px;
}

#carbi-trainer-avatar-v1 .cta-arm-left {
  left: 10px;
}

#carbi-trainer-avatar-v1 .cta-arm-right {
  right: 10px;
}

#carbi-trainer-avatar-v1 .cta-forearm {
  position: absolute;
  top: 57px;
  left: 1px;
  width: 16px;
  height: 60px;
  border-radius: 10px;
  background: #8be8ff;
  transform-origin: 50% 8px;
}

#carbi-trainer-avatar-v1 .cta-legs {
  position: absolute;
  top: 158px;
  left: 50%;
  width: 76px;
  height: 72px;
  transform: translateX(-50%);
}

#carbi-trainer-avatar-v1 .cta-leg {
  position: absolute;
  top: 0;
  width: 22px;
  height: 70px;
  border-radius: 12px;
  background: #279ed0;
  transform-origin: 50% 6px;
}

#carbi-trainer-avatar-v1 .cta-leg-left {
  left: 9px;
}

#carbi-trainer-avatar-v1 .cta-leg-right {
  right: 9px;
}


/* ASKCARBI_TRAINER_FULL_EXERCISE_MOTION_V1 */

/* SHOULDER ROLLS */
.cta-person.cta-move-shoulder-rolls .cta-body {
  animation: cta-shoulder-roll 1.4s ease-in-out infinite;
}
@keyframes cta-shoulder-roll {
  0%,100% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-5px); }
  50% { transform: translateX(-50%) translateY(0); }
  75% { transform: translateX(-50%) translateY(4px); }
}

/* SHOULDER PRESS */
.cta-person.cta-move-press .cta-arm-left {
  animation: cta-press-left 1.4s ease-in-out infinite;
}
.cta-person.cta-move-press .cta-arm-right {
  animation: cta-press-right 1.4s ease-in-out infinite;
}
@keyframes cta-press-left {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(165deg); }
}
@keyframes cta-press-right {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-165deg); }
}

/* TRICEPS */
.cta-person.cta-move-triceps .cta-arm-left {
  animation: cta-triceps-left 1.5s ease-in-out infinite;
}
.cta-person.cta-move-triceps .cta-arm-right {
  animation: cta-triceps-right 1.5s ease-in-out infinite;
}
@keyframes cta-triceps-left {
  0%,100% { transform: rotate(145deg); }
  50% { transform: rotate(175deg); }
}
@keyframes cta-triceps-right {
  0%,100% { transform: rotate(-145deg); }
  50% { transform: rotate(-175deg); }
}

/* PUSH UPS */
.cta-person.cta-move-pushups {
  animation: cta-pushup 1.5s ease-in-out infinite;
}
@keyframes cta-pushup {
  0%,100% { transform: rotate(82deg) translateX(0); }
  50% { transform: rotate(82deg) translateX(24px); }
}

/* CHEST PRESS */
.cta-person.cta-move-chest-press .cta-arm-left {
  animation: cta-chest-left 1.3s ease-in-out infinite;
}
.cta-person.cta-move-chest-press .cta-arm-right {
  animation: cta-chest-right 1.3s ease-in-out infinite;
}
@keyframes cta-chest-left {
  0%,100% { transform: rotate(35deg); }
  50% { transform: rotate(90deg); }
}
@keyframes cta-chest-right {
  0%,100% { transform: rotate(-35deg); }
  50% { transform: rotate(-90deg); }
}

/* ROWS */
.cta-person.cta-move-rows .cta-arm-left,
.cta-person.cta-move-rows .cta-arm-right {
  animation: cta-row 1.4s ease-in-out infinite;
}
@keyframes cta-row {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-24px); }
}

/* BIRD DOG */
.cta-person.cta-move-bird-dog .cta-arm-left {
  animation: cta-bird-arm 1.8s ease-in-out infinite;
}
.cta-person.cta-move-bird-dog .cta-leg-right {
  animation: cta-bird-leg 1.8s ease-in-out infinite;
}
@keyframes cta-bird-arm {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(90deg); }
}
@keyframes cta-bird-leg {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-55deg); }
}

/* PLANK */
.cta-person.cta-move-plank {
  animation: cta-plank 2s ease-in-out infinite;
}
@keyframes cta-plank {
  0%,100% { transform: rotate(82deg) translateY(0); }
  50% { transform: rotate(82deg) translateY(3px); }
}

/* DEAD BUG */
.cta-person.cta-move-dead-bug {
  transform: rotate(90deg);
}
.cta-person.cta-move-dead-bug .cta-arm-left,
.cta-person.cta-move-dead-bug .cta-leg-right {
  animation: cta-deadbug-a 1.6s ease-in-out infinite;
}
.cta-person.cta-move-dead-bug .cta-arm-right,
.cta-person.cta-move-dead-bug .cta-leg-left {
  animation: cta-deadbug-b 1.6s ease-in-out infinite;
}
@keyframes cta-deadbug-a {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(55deg); }
}
@keyframes cta-deadbug-b {
  0%,100% { transform: rotate(45deg); }
  50% { transform: rotate(0deg); }
}

/* KNEE DRIVES */
.cta-person.cta-move-knee-drive .cta-leg-left {
  animation: cta-knee-left 1s ease-in-out infinite;
}
.cta-person.cta-move-knee-drive .cta-leg-right {
  animation: cta-knee-right 1s ease-in-out infinite;
}
@keyframes cta-knee-left {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-65deg); }
}
@keyframes cta-knee-right {
  0%,50%,100% { transform: rotate(0deg); }
  75% { transform: rotate(65deg); }
}

/* CALF RAISES */
.cta-person.cta-move-calf-raise {
  animation: cta-calf 1.2s ease-in-out infinite;
}
@keyframes cta-calf {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

/* REVERSE STEPS */
.cta-person.cta-move-reverse-step .cta-leg-left {
  animation: cta-reverse-left 1.6s ease-in-out infinite;
}
.cta-person.cta-move-reverse-step .cta-leg-right {
  animation: cta-reverse-right 1.6s ease-in-out infinite;
}
@keyframes cta-reverse-left {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(35deg); }
}
@keyframes cta-reverse-right {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-20deg); }
}

/* JOG */
.cta-person.cta-move-jog {
  animation: cta-jog-body .55s ease-in-out infinite;
}
.cta-person.cta-move-jog .cta-leg-left {
  animation: cta-jog-left .55s ease-in-out infinite;
}
.cta-person.cta-move-jog .cta-leg-right {
  animation: cta-jog-right .55s ease-in-out infinite;
}
@keyframes cta-jog-body {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
@keyframes cta-jog-left {
  0%,100% { transform: rotate(-30deg); }
  50% { transform: rotate(30deg); }
}
@keyframes cta-jog-right {
  0%,100% { transform: rotate(30deg); }
  50% { transform: rotate(-30deg); }
}

/* STEP TOUCH */
.cta-person.cta-move-step-touch {
  animation: cta-step-touch 1.4s ease-in-out infinite;
}
@keyframes cta-step-touch {
  0%,100% { transform: translateX(-18px); }
  50% { transform: translateX(18px); }
}

/* BALANCE */
.cta-person.cta-move-balance .cta-leg-right {
  animation: cta-balance-leg 2s ease-in-out infinite;
}
@keyframes cta-balance-leg {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-55deg); }
}

/* WEIGHT SHIFT */
.cta-person.cta-move-weight-shift {
  animation: cta-weight-shift 1.8s ease-in-out infinite;
}
@keyframes cta-weight-shift {
  0%,100% { transform: translateX(-15px); }
  50% { transform: translateX(15px); }
}

/* HEEL TO TOE */
.cta-person.cta-move-heel-to-toe {
  animation: cta-heel-to-toe 1.8s ease-in-out infinite;
}
@keyframes cta-heel-to-toe {
  0%,100% { transform: translateX(-12px); }
  50% { transform: translateX(12px); }
}

/* HIP MOBILITY */
.cta-person.cta-move-hip-mobility .cta-legs {
  animation: cta-hips 1.8s ease-in-out infinite;
}
@keyframes cta-hips {
  0%,100% { transform: translateX(-50%) rotate(-6deg); }
  50% { transform: translateX(-50%) rotate(6deg); }
}

/* BREATHING */
.cta-person.cta-move-breathing .cta-torso {
  animation: cta-breathe 3s ease-in-out infinite;
}
@keyframes cta-breathe {
  0%,100% {
    transform: translateX(-50%) scale(1);
  }
  50% {
    transform: translateX(-50%) scale(1.08);
  }
}

/* DEFAULT COACH MOTION */
.cta-person.cta-move-coach {
  animation: cta-coach 2.4s ease-in-out infinite;
}
@keyframes cta-coach {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}


/* ASKCARBI_PREMIUM_TRAINER_MASCOT_V2
   VISUAL/MOTION LAYER ONLY.
   DO NOT MODIFY START WORKOUT SYSTEM.
*/

#carbi-trainer-avatar-v1 {
  width: 100%;
  min-height: 370px;
  display: grid;
  place-items: center;
  overflow: visible;
  padding: 18px 0 8px;
}

#carbi-trainer-avatar-v1 .cta-stage {
  position: relative;
  width: min(100%, 420px);
  min-height: 350px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

/* premium glow behind Carbi */
#carbi-trainer-avatar-v1 .cta-stage::before {
  content: "";
  position: absolute;
  width: 260px;
  height: 260px;
  top: 44px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(46,213,255,.17) 0%,
      rgba(31,112,255,.08) 42%,
      rgba(0,0,0,0) 72%
    );
  filter: blur(4px);
  pointer-events: none;
}

#carbi-trainer-avatar-v1 .cta-status {
  position: relative;
  z-index: 2;
  margin-bottom: 15px;
  padding: 7px 14px;
  border: 1px solid rgba(93,220,255,.28);
  border-radius: 999px;
  background: rgba(7,27,43,.48);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.7px;
  color: rgba(226,248,255,.88);
}

#carbi-trainer-avatar-v1 .cta-live-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin-right: 7px;
  border-radius: 50%;
  background: #47e6ff;
  box-shadow: 0 0 10px rgba(71,230,255,.9);
}

/* ================================
   PREMIUM CARBI BODY
   ================================ */

#carbi-trainer-avatar-v1 .cta-person {
  position: relative;
  z-index: 2;
  width: 180px;
  height: 245px;
  margin: 0 auto 12px;
  transform-origin: 50% 90%;
}

/* helmet / head */
#carbi-trainer-avatar-v1 .cta-head {
  position: absolute;
  z-index: 6;
  top: 0;
  left: 50%;
  width: 68px;
  height: 72px;
  transform: translateX(-50%);
  border-radius: 48% 48% 44% 44%;
  border: 2px solid rgba(119,231,255,.9);
  background:
    linear-gradient(
      145deg,
      #ecfbff 0%,
      #a9dff0 18%,
      #287da8 52%,
      #071c32 100%
    );
  box-shadow:
    inset -8px -10px 18px rgba(0,16,35,.55),
    inset 7px 7px 15px rgba(255,255,255,.45),
    0 0 20px rgba(41,205,255,.30);
}

/* helmet crown */
#carbi-trainer-avatar-v1 .cta-head::before {
  content: "";
  position: absolute;
  width: 38px;
  height: 12px;
  left: 50%;
  top: -6px;
  transform: translateX(-50%);
  border-radius: 50% 50% 25% 25%;
  background:
    linear-gradient(90deg,#144b70,#8eeaff,#144b70);
  box-shadow: 0 0 9px rgba(70,220,255,.5);
}

/* premium visor */
#carbi-trainer-avatar-v1 .cta-visor {
  position: absolute;
  z-index: 7;
  left: 8px;
  right: 8px;
  top: 24px;
  height: 23px;
  border-radius: 15px 15px 18px 18px;
  border: 1px solid rgba(94,224,255,.72);
  background:
    linear-gradient(
      180deg,
      rgba(6,21,38,.98),
      rgba(3,10,21,.98)
    );
  box-shadow:
    inset 0 0 10px rgba(48,206,255,.20),
    0 0 10px rgba(41,199,255,.34);
}

#carbi-trainer-avatar-v1 .cta-visor::before,
#carbi-trainer-avatar-v1 .cta-visor::after {
  content: "";
  position: absolute;
  top: 8px;
  width: 15px;
  height: 5px;
  border-radius: 999px;
  background: #59e5ff;
  box-shadow: 0 0 8px #37cfff;
}

#carbi-trainer-avatar-v1 .cta-visor::before {
  left: 9px;
}

#carbi-trainer-avatar-v1 .cta-visor::after {
  right: 9px;
}

/* neck */
#carbi-trainer-avatar-v1 .cta-neck {
  position: absolute;
  z-index: 3;
  top: 66px;
  left: 50%;
  width: 19px;
  height: 18px;
  transform: translateX(-50%);
  border-radius: 5px;
  background:
    linear-gradient(90deg,#176b91,#a1edff,#176b91);
}

/* shoulder/body area */
#carbi-trainer-avatar-v1 .cta-body {
  position: absolute;
  z-index: 3;
  top: 79px;
  left: 50%;
  width: 150px;
  height: 100px;
  transform: translateX(-50%);
}

/* feminine premium torso */
#carbi-trainer-avatar-v1 .cta-torso {
  position: absolute;
  z-index: 4;
  top: 0;
  left: 50%;
  width: 76px;
  height: 101px;
  transform: translateX(-50%);
  border-radius: 25px 25px 19px 19px;
  border: 2px solid rgba(104,225,255,.78);
  background:
    linear-gradient(
      145deg,
      #2f91ba 0%,
      #15547c 40%,
      #071e38 100%
    );
  box-shadow:
    inset 6px 5px 13px rgba(255,255,255,.13),
    inset -7px -8px 15px rgba(0,8,25,.50),
    0 0 18px rgba(48,199,255,.22);
  display: grid;
  place-items: center;
}

/* waist */
#carbi-trainer-avatar-v1 .cta-torso::after {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 50%;
  width: 57px;
  height: 17px;
  transform: translateX(-50%);
  border-radius: 7px;
  background:
    linear-gradient(90deg,#08223d,#2a96bd,#08223d);
}

#carbi-trainer-avatar-v1 .cta-torso span {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(111,231,255,.45);
  border-radius: 50%;
  font-size: 24px;
  font-weight: 900;
  color: #f5fdff;
  background: rgba(4,24,43,.46);
  text-shadow: 0 0 10px rgba(79,220,255,.7);
  box-shadow: inset 0 0 12px rgba(51,211,255,.13);
}

/* articulated upper arms */
#carbi-trainer-avatar-v1 .cta-arm {
  position: absolute;
  z-index: 2;
  top: 10px;
  width: 19px;
  height: 68px;
  border-radius: 13px;
  border: 1px solid rgba(126,232,255,.7);
  background:
    linear-gradient(
      90deg,
      #0d537c,
      #56d6ef,
      #12628b
    );
  transform-origin: 50% 8px;
  box-shadow:
    inset 3px 0 5px rgba(255,255,255,.18),
    0 0 9px rgba(49,202,244,.18);
}

#carbi-trainer-avatar-v1 .cta-arm-left {
  left: 15px;
}

#carbi-trainer-avatar-v1 .cta-arm-right {
  right: 15px;
}

/* forearms */
#carbi-trainer-avatar-v1 .cta-forearm {
  position: absolute;
  top: 55px;
  left: 1px;
  width: 15px;
  height: 58px;
  border-radius: 11px;
  background:
    linear-gradient(
      90deg,
      #17698e,
      #a3edfb,
      #21799b
    );
  transform-origin: 50% 7px;
  box-shadow: 0 0 7px rgba(72,217,255,.15);
}

/* legs */
#carbi-trainer-avatar-v1 .cta-legs {
  position: absolute;
  z-index: 2;
  top: 174px;
  left: 50%;
  width: 84px;
  height: 72px;
  transform: translateX(-50%);
}

#carbi-trainer-avatar-v1 .cta-leg {
  position: absolute;
  top: 0;
  width: 24px;
  height: 70px;
  border-radius: 13px 13px 10px 10px;
  border: 1px solid rgba(92,215,246,.52);
  background:
    linear-gradient(
      90deg,
      #0b4d76,
      #309fc5,
      #0c5278
    );
  transform-origin: 50% 7px;
  box-shadow:
    inset 3px 0 5px rgba(255,255,255,.10),
    0 0 7px rgba(38,187,231,.14);
}

#carbi-trainer-avatar-v1 .cta-leg-left {
  left: 11px;
}

#carbi-trainer-avatar-v1 .cta-leg-right {
  right: 11px;
}

/* feet */
#carbi-trainer-avatar-v1 .cta-leg::after {
  content: "";
  position: absolute;
  bottom: -6px;
  width: 29px;
  height: 12px;
  border-radius: 8px 10px 5px 5px;
  background: #103f61;
}

#carbi-trainer-avatar-v1 .cta-leg-left::after {
  right: 1px;
}

#carbi-trainer-avatar-v1 .cta-leg-right::after {
  left: 1px;
}

#carbi-trainer-avatar-v1 .cta-title {
  position: relative;
  z-index: 2;
  margin-top: 4px;
  font-size: 18px;
  font-weight: 800;
  color: #f5fbff;
}

#carbi-trainer-avatar-v1 .cta-exercise {
  position: relative;
  z-index: 2;
  margin-top: 5px;
  font-size: 16px;
  color: rgba(221,241,250,.78);
}

/* smoother premium motion */
#carbi-trainer-avatar-v1 .cta-arm,
#carbi-trainer-avatar-v1 .cta-leg,
#carbi-trainer-avatar-v1 .cta-body,
#carbi-trainer-avatar-v1 .cta-person,
#carbi-trainer-avatar-v1 .cta-forearm {
  will-change: transform;
  backface-visibility: hidden;
}

/* warm-up / generic coaching motion */
#carbi-trainer-avatar-v1 .cta-person.cta-move-coach {
  animation: carbi-premium-breathe 2.6s ease-in-out infinite;
}

@keyframes carbi-premium-breathe {
  0%,100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-3px) scale(1.012);
  }
}

/* mobile */
@media (max-width: 520px) {
  #carbi-trainer-avatar-v1 {
    min-height: 350px;
  }

  #carbi-trainer-avatar-v1 .cta-person {
    transform: scale(.96);
    margin-top: -2px;
    margin-bottom: 4px;
  }
}

/* Respect accessibility settings */
@media (prefers-reduced-motion: reduce) {
  #carbi-trainer-avatar-v1 *,
  #carbi-trainer-avatar-v1 *::before,
  #carbi-trainer-avatar-v1 *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* /ASKCARBI_PREMIUM_TRAINER_MASCOT_V2 */

/* ASKCARBI_LIVE_AI_TRAINER_VIDEO_STYLE_V1
   Demonstration-video styling only.
*/

#carbi-trainer-avatar-v1
.carbi-live-trainer-video {
  display: block;
  width: min(100%, 390px);
  height: 430px;
  margin: 0 auto 10px;
  object-fit: contain;
  object-position: center;
  background: transparent;
  border: 0;
  outline: 0;
  box-shadow: none;
}

#carbi-trainer-avatar-v1
.carbi-live-trainer-video[hidden] {
  display: none !important;
}

@media (max-width: 600px) {
  #carbi-trainer-avatar-v1
  .carbi-live-trainer-video {
    width: min(100%, 350px);
    height: 400px;
  }
}

/* /ASKCARBI_LIVE_AI_TRAINER_VIDEO_STYLE_V1 */
