/* ===== IvyGoal motion layer (pass 1) ===== */
:root{ --ivy-spring:cubic-bezier(.34,1.56,.64,1); --ivy-out:cubic-bezier(.22,.61,.36,1); }

@media (prefers-reduced-motion: no-preference){

/* —— dashboard: staggered fade-up reveal on load —— */
@keyframes ivyRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
.dash-side .side-sec,.info-cards-row,.workspace-card,.phub-card,.dash-main>.feat-row{
  animation:ivyRise .6s var(--ivy-out) both;
}
.dash-side .side-sec:nth-child(1){animation-delay:.05s}
.dash-side .side-sec:nth-child(2){animation-delay:.12s}
.dash-side .side-sec:nth-child(3){animation-delay:.19s}
.dash-side .side-sec:nth-child(4){animation-delay:.26s}
.dash-side .side-sec:nth-child(5){animation-delay:.33s}
.dash-side .side-sec:nth-child(6){animation-delay:.40s}

/* —— numbers pop in —— */
@keyframes ivyPop{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
.hstat-num,.info-card-num,.phub-stat-num,.vg-num,.ws-num{animation:ivyPop .55s var(--ivy-spring) both;animation-delay:.25s}

/* —— buttons: lift + press —— */
.qa-btn,.dash-btn-primary,.dash-btn-secondary,.ext-card-btn,.btn-save-exit,.nav-logout-btn,.btn-secondary{
  transition:transform .18s var(--ivy-out),box-shadow .18s var(--ivy-out),border-color .18s,filter .18s;
}
.qa-btn:hover,.dash-btn-secondary:hover,.ext-card-btn:hover,.btn-secondary:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(85,72,160,.16)}
.dash-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(85,72,160,.42);filter:saturate(1.05)}
.qa-btn:active,.dash-btn-primary:active,.dash-btn-secondary:active,.ext-card-btn:active,.btn-save-exit:active{transform:translateY(0) scale(.97)}

/* —— primary button shine sweep on hover —— */
.dash-btn-primary,.ext-card-btn.primary{position:relative;overflow:hidden}
.dash-btn-primary::after,.ext-card-btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.38) 50%,transparent 62%);transform:translateX(-160%);transition:transform .65s ease;pointer-events:none}
.dash-btn-primary:hover::after,.ext-card-btn.primary:hover::after{transform:translateX(160%)}

/* —— cards: hover lift —— */
.info-card,.ws-item,.pill,.qa-btn{transition:transform .2s var(--ivy-out),box-shadow .2s var(--ivy-out),border-color .2s}
.info-card:hover,.ws-item:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(40,30,90,.13)}

/* —— nav micro-interactions —— */
.nav-avatar,.theme-toggle,.nav-streak{transition:transform .22s var(--ivy-spring),box-shadow .22s}
.nav-avatar:hover,.theme-toggle:hover{transform:scale(1.08)}
.nav-streak:hover{transform:translateY(-1px)}

/* —— drill / assessment: options spring in per question + hover —— */
@keyframes ivyOpt{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.options-grid-six .option-btn{animation:ivyOpt .42s var(--ivy-out) both}
.options-grid-six .option-btn:nth-child(1){animation-delay:.04s}
.options-grid-six .option-btn:nth-child(2){animation-delay:.10s}
.options-grid-six .option-btn:nth-child(3){animation-delay:.16s}
.options-grid-six .option-btn:nth-child(4){animation-delay:.22s}
.options-grid-six .option-btn:nth-child(5){animation-delay:.28s}
.options-grid-six .option-btn:nth-child(6){animation-delay:.34s}
.option-btn{transition:transform .15s var(--ivy-out),box-shadow .15s,border-color .15s,background .15s}
.option-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(85,72,160,.15)}
.option-btn:active{transform:scale(.98)}

/* —— question prompt gentle reveal —— */
@keyframes ivyPrompt{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.prompt-box{animation:ivyPrompt .45s var(--ivy-out) both}

/* —— progress bars ease —— */
.session-progress-fill,#sessionProgressFill,#drillProgressFill,.dash-progress-fill{transition:width .6s var(--ivy-out)}

}
