/* Finite interface motion. Screen containers never transform: fixed tools stay anchored. */
@keyframes zw-reveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes zw-fade{from{opacity:0}to{opacity:1}}
@keyframes zw-keypad{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@keyframes zw-feedback{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes zw-grade{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}

[data-anim="full"] :is(button,.pill,select,input,.course,.roadmap-course,.gradebook-panel,.locked-course){transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease}
[data-anim="full"] :is(button,.pill):not(:disabled):active{transform:scale(.98)}
@media(hover:hover){
  [data-anim="full"] :is(button,.pill):not(:disabled):hover{box-shadow:0 2px 10px color-mix(in srgb,var(--accent) 14%,transparent)}
  [data-anim="full"] .grade-table tbody tr:hover{background:var(--soft)}
  [data-anim="full"] .roadmap-course:hover{border-color:var(--accent)}
}
[data-anim="full"] :is(.bar,.mini,.dash-unit-progress)>b,
[data-anim="full"] .dash-unit-progress i{transition:width .6s cubic-bezier(.2,.8,.2,1)}

[data-anim="full"] #home.active :is(.dash-heading,.dashboard-nav,.continue,.stats,.lesson-library,.dash-layout,.subject-roadmap,.locked-subjects){animation:zw-reveal .38s ease-out backwards}
[data-anim="full"] #home.active .continue{animation-delay:.04s}
[data-anim="full"] #home.active .stats{animation-delay:.08s}
[data-anim="full"] #home.active .lesson-library{animation-delay:.12s}
[data-anim="full"] #home.active .dash-layout{animation-delay:.15s}
[data-anim="full"] .grades-screen.active .grades-header{animation:zw-fade .24s ease-out}
[data-anim="full"] .grades-screen.active .grades-content{animation:zw-fade .32s ease-out}
[data-anim="full"] .course-letter{animation:zw-grade .4s ease-out}
[data-anim="full"] :is(.grade-metrics>div,.stats>.stat,.roadmap-grid>.roadmap-course,.locked-course-grid>.locked-course){animation:zw-reveal .32s ease-out backwards}
[data-anim="full"] :is(.grade-metrics>div,.stats>.stat,.roadmap-grid>.roadmap-course,.locked-course-grid>.locked-course):nth-child(2){animation-delay:.05s}
[data-anim="full"] :is(.grade-metrics>div,.stats>.stat,.roadmap-grid>.roadmap-course,.locked-course-grid>.locked-course):nth-child(3){animation-delay:.1s}
[data-anim="full"] :is(.roadmap-grid>.roadmap-course,.locked-course-grid>.locked-course):nth-child(n+4){animation-delay:.14s}

[data-anim="full"] details[open]>:not(summary){animation:zw-fade .24s ease-out}
[data-anim="full"] :is(.tdet,.roadmap-course,.grade-history,.practice-grades,.accessibility-settings)>summary{transition:background-color .18s ease,color .18s ease}
[data-anim="full"] .grade-table tbody tr{animation:zw-fade .28s ease-out backwards;transition:background-color .16s ease}
[data-anim="full"] .grade-table tbody tr:nth-child(2){animation-delay:.025s}
[data-anim="full"] .grade-table tbody tr:nth-child(3){animation-delay:.05s}
[data-anim="full"] .grade-table tbody tr:nth-child(n+4){animation-delay:.075s}
[data-anim="full"] .settings.open .s-body{animation:zw-fade .3s ease-out}
[data-anim="full"] .seg button[aria-pressed="true"]{animation:zw-fade .18s ease-out}

[data-anim="full"] .question-pane{animation:zw-reveal .3s ease-out}
[data-anim="full"] :is(.solution-pane:not([hidden]),.check-feedback:not([hidden])){animation:zw-feedback .32s ease-out}
[data-anim="full"] .solution-steps>li{animation:zw-reveal .28s ease-out backwards}
[data-anim="full"] .solution-steps>li:nth-child(2){animation-delay:.06s}
[data-anim="full"] .solution-steps>li:nth-child(n+3){animation-delay:.1s}
[data-anim="full"] .solution-result{animation:zw-fade .4s ease-out}
[data-anim="full"] :is(.answer-keypad-body,.math-keyboard):not([hidden]){animation:zw-keypad .18s ease-out;transform-origin:top center}
[data-anim="full"] .panel .p-body:not([hidden]){animation:zw-fade .22s ease-out}
[data-anim="full"] .welcome-tour:not([hidden]){animation:zw-reveal .32s ease-out}
[data-anim="full"] .welcome-tour :is(h2,p,.tour-actions){animation:zw-fade .25s ease-out}
[data-anim="full"] .library-results>*,[data-anim="full"] .profile-dialog[open]{animation:zw-fade .2s ease-out}

/* Resizing remains immediate; feedback motion does not shake the workspace. */
[data-anim="full"] .fb.no{animation:zw-feedback .3s ease-out}
.resizing-tools *,.drawing-menu.resizing{transition:none!important;animation:none!important}
[data-anim="reduced"] *,[data-anim="reduced"] *::before,[data-anim="reduced"] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
[data-anim="reduced"] :is(button,.pill):active{transform:none!important}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  :is(button,.pill):active{transform:none!important}
}
