/* GodsWork76.0 — purposeful membership motion */
:root{--gw-motion:cubic-bezier(.22,.78,.24,1)}

#app-screen.motion-enter>.simple-screen,
#app-screen.motion-enter>.screen,
#app-screen.motion-enter>.stone-path,
#app-screen.motion-enter>.assessment-intro,
#app-screen.motion-enter>.coach-assessment{
  animation:gw-screen-in .42s var(--gw-motion) both;
}

#app-screen.motion-enter>.simple-screen>*:not(.member-nav),
#app-screen.motion-enter>.screen>*:not(.member-nav),
#app-screen.motion-enter>.stone-path>*:not(.member-nav),
#app-screen.motion-enter>.assessment-intro>*,
#app-screen.motion-enter>.coach-assessment>*{
  animation:gw-item-in .46s var(--gw-motion) both;
}

#app-screen.motion-enter>section>*:nth-child(1){animation-delay:.025s}
#app-screen.motion-enter>section>*:nth-child(2){animation-delay:.065s}
#app-screen.motion-enter>section>*:nth-child(3){animation-delay:.105s}
#app-screen.motion-enter>section>*:nth-child(4){animation-delay:.145s}
#app-screen.motion-enter>section>*:nth-child(5){animation-delay:.185s}
#app-screen.motion-enter>section>*:nth-child(6){animation-delay:.225s}
#app-screen.motion-enter>section>*:nth-child(n+7){animation-delay:.255s}

.goal-choice-grid button,.reality-options button,.injury-region-tabs button,
.compact-check-grid button,.quality-grid button,.rep-quick button,
.result-tabs button,.feel button,.quick-effort button,.session-options button,
.today-panel,.program-movement,.session-movement,.settings-row,.me-list button,
.history-list button,.member-nav button,.simple-primary,.quiet-action{
  transition:transform .22s var(--gw-motion),background-color .22s ease,
    border-color .22s ease,color .22s ease,box-shadow .22s ease,opacity .22s ease!important;
}

.goal-choice-grid button:active,.reality-options button:active,
.compact-check-grid button:active,.quality-grid button:active,.rep-quick button:active,
.result-tabs button:active,.feel button:active,.quick-effort button:active,
.session-options button:active,.today-panel:active,.program-movement:active,
.settings-row:active,.me-list button:active,.history-list button:active,
.simple-primary:active,.quiet-action:active{transform:scale(.975)}

.goal-choice-grid button.selected,.reality-options button.selected,
.compact-check-grid button.selected,.quality-grid button.selected,.rep-quick button.selected{
  animation:gw-choice-set .28s var(--gw-motion) both;
}

.goal-choice-grid button.selected>i,.onboard-choices button.selected>i,
.injury-accordion-section.complete .injury-accordion-head>i{
  animation:gw-check-pop .34s var(--gw-motion) both;
}

.onboard-progress i.done,.assessment-stage-nav .active i,
.assessment-stage-nav .complete i{transition:background-color .28s ease,border-color .28s ease,transform .28s var(--gw-motion)}
.assessment-stage-nav .active i{transform:scale(1.12);box-shadow:0 0 0 5px rgba(31,125,92,.12)}

.motion-enter .session-progress i,.motion-enter .workout-sticky em,
.motion-enter .coach-assessment .onboard-progress i{
  transform-origin:left center;
  animation:gw-progress-grow .7s var(--gw-motion) .12s both;
}

.motion-enter .starting-level>div,.motion-enter .ring{
  animation:gw-ring-in .7s var(--gw-motion) .12s both;
}

.injury-accordion-body,.workspace-inline-guide,.session-detail,
.more-options[open]>*:not(summary),details[open]>*:not(summary){
  transform-origin:top center;
  animation:gw-expand .32s var(--gw-motion) both;
}

.member-sheet.motion-open .sheet-backdrop{animation:gw-backdrop-in .24s ease both}
.member-sheet.motion-open .sheet-card{animation:gw-sheet-in .38s var(--gw-motion) both}
.member-sheet.motion-open #sheet-content>*{animation:gw-item-in .36s var(--gw-motion) both}
.member-sheet.motion-open #sheet-content>*:nth-child(2){animation-delay:.04s}
.member-sheet.motion-open #sheet-content>*:nth-child(3){animation-delay:.08s}
.member-sheet.motion-open #sheet-content>*:nth-child(n+4){animation-delay:.12s}

.member-nav .active i,.member-nav button.active i{animation:gw-nav-pop .32s var(--gw-motion) both}
.profile-builder-map .builder-core{animation:gw-core-breathe 3.8s ease-in-out infinite}
.profile-builder-map .builder-node{animation:gw-node-float 3.2s ease-in-out infinite}
.profile-builder-map .builder-node:nth-of-type(2){animation-delay:-.8s}
.profile-builder-map .builder-node:nth-of-type(3){animation-delay:-1.6s}
.profile-builder-map .builder-node:nth-of-type(4){animation-delay:-2.4s}

@keyframes gw-screen-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes gw-item-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes gw-choice-set{0%{transform:scale(.97)}65%{transform:scale(1.018)}100%{transform:none}}
@keyframes gw-check-pop{0%{opacity:.25;transform:scale(.35) rotate(-15deg)}70%{transform:scale(1.15) rotate(3deg)}100%{opacity:1;transform:none}}
@keyframes gw-progress-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes gw-ring-in{from{opacity:0;transform:scale(.72) rotate(-18deg)}to{opacity:1;transform:none}}
@keyframes gw-expand{from{opacity:0;transform:translateY(-8px) scaleY(.94)}to{opacity:1;transform:none}}
@keyframes gw-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes gw-sheet-in{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
@keyframes gw-nav-pop{0%{transform:scale(.72)}70%{transform:scale(1.12)}100%{transform:none}}
@keyframes gw-core-breathe{0%,100%{transform:scale(1);box-shadow:0 18px 45px rgba(17,23,21,.16)}50%{transform:scale(1.025);box-shadow:0 22px 55px rgba(31,125,92,.2)}}
@keyframes gw-node-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

@media(prefers-reduced-motion:reduce){
  #app-screen *,.member-sheet *{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
