/* Small movements support interaction; text stays still while answering. */
:root{--motion-ease:cubic-bezier(.22,.68,.2,1);--motion-fast:160ms;--motion-enter:380ms}
@keyframes card-arrive{from{opacity:.45;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes view-arrive{from{opacity:.6;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes question-arrive{from{opacity:.7;transform:translateX(5px)}to{opacity:1;transform:translateX(0)}}
@keyframes choice-confirm{0%{transform:scale(.88)}60%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes popup-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes sheet-arrive{from{opacity:.6;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@keyframes illustration-drift{from{transform:translateY(0)}to{transform:translateY(-7px)}}
.motion-card{animation:card-arrive var(--motion-enter) var(--motion-ease) var(--motion-delay,0ms) backwards}
.motion-view{animation:view-arrive 320ms var(--motion-ease)}
.motion-question{animation:question-arrive 200ms var(--motion-ease)}
.motion-choice .option-index{animation:choice-confirm 240ms var(--motion-ease)}
.motion-feedback{animation:view-arrive 220ms var(--motion-ease)}
body[data-motion-scene=browse]::before{animation:illustration-drift 12s ease-in-out infinite alternate}
body[data-motion-paused=true]::before{animation-play-state:paused}
.exam-card,.section-ready{transition:transform 220ms var(--motion-ease),border-color var(--motion-fast) ease,box-shadow 220ms ease}
.button,.library-link,.theme-options button,.offline-save{transition:transform var(--motion-fast) var(--motion-ease),background var(--motion-fast) ease,border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease,color var(--motion-fast) ease}
.brand-mark{transition:transform 240ms var(--motion-ease)}
@media(hover:hover) and (pointer:fine){
 .exam-card:hover,.section-ready:hover{transform:translateY(-3px);border-color:var(--control);box-shadow:0 12px 28px #203d3a0b}
 .button:hover:not(:disabled),.library-link:hover,.offline-save:hover:not(:disabled){transform:translateY(-1px)}
 .brand:hover .brand-mark{transform:rotate(-5deg)}
}
.button:active:not(:disabled),.library-link:active,.theme-options button:active,.offline-save:active:not(:disabled):active{transform:scale(.98);transition-duration:80ms}
dialog[open]{animation:popup-arrive 190ms var(--motion-ease)}
dialog[open]::backdrop{animation:backdrop-arrive 180ms ease}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .exam-card:hover,.section-ready:hover,.button:hover,.button:active,.library-link:hover,.library-link:active,.theme-options button:active,.offline-save:hover,.offline-save:active:active,.brand:hover .brand-mark{transform:none!important}
}
