/* Local motion only: static layout and content remain the default. */
.wm-managed.animating,.wm-managed.animate-in{animation:none!important}
.wm-rule-host{position:relative}
.wm-rule{position:absolute;left:0;top:-2px;width:100%;height:3px;background:currentColor;opacity:.35;transform-origin:left center;pointer-events:none}
@media(hover:hover) and (pointer:fine){
 .trace-courses .btn::after,.course .btn::after,.contact .btn::after,.course-jumps a::after,.grade-jump a::after{display:inline-block;transition:transform .18s ease}
 .trace-courses .btn:hover::after,.course .btn:hover::after,.contact .btn:hover::after{transform:translate(3px,-3px)}
 .course-jumps a:hover::after,.grade-jump a:hover::after{transform:translateY(3px)}
}
@media(prefers-reduced-motion:reduce){
 .wm-scene,.wm-scene *{animation:none!important;transition:none!important}
}
\n@media(prefers-reduced-motion:reduce){.trace-courses .btn::after,.course .btn::after,.contact .btn::after,.course-jumps a::after,.grade-jump a::after{transform:none!important;transition:none!important}}\n