/* Maan Motion System: semantic hooks around AOS, with progressive enhancement. */
:root { --motion-fast: 300ms; --motion-base: 600ms; --motion-slow: 800ms; --motion-ease: cubic-bezier(.22,.61,.36,1); --motion-distance: 24px; --motion-stagger: 80ms; }
.m-section, .m-title, .m-card, .m-media, .m-list-item, .m-counter, .m-hero { overflow-x: clip; }
.m-section[data-aos], .m-title[data-aos], .m-card[data-aos], .m-media[data-aos], .m-list-item[data-aos], .m-counter[data-aos], .m-hero[data-aos] { transition-duration: var(--motion-base) !important; transition-timing-function: var(--motion-ease) !important; }
.m-hero[data-aos] { transition-duration: var(--motion-fast) !important; }
html:not(.js) [data-aos], html.js:not(.motion-ready) [data-aos], html.motion-disabled [data-aos], html:not(.js) .m-section, html:not(.js) .m-title, html:not(.js) .m-card, html:not(.js) .m-media, html:not(.js) .m-list-item, html:not(.js) .m-counter, html:not(.js) .m-hero { opacity: 1 !important; transform: none !important; }
@media (hover: hover) { .m-card { transition: transform var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease); } .m-card:hover { transform: translateY(-4px); } }
.m-counter__value { font-variant-numeric: tabular-nums; }
.m-section[data-aos], .m-title[data-aos], .m-card[data-aos], .m-media[data-aos], .m-list-item[data-aos], .m-counter[data-aos], .m-hero[data-aos] { transition-property: opacity, transform !important; }
[dir="rtl"] [data-aos="fade-right"] { transform: translate3d(var(--motion-distance), 0, 0); }
[dir="rtl"] [data-aos="fade-left"] { transform: translate3d(calc(var(--motion-distance) * -1), 0, 0); }
@media (max-width: 768px) { :root { --motion-distance: 16px; --motion-base: 400ms; --motion-slow: 500ms; } .m-media[data-aos="zoom-in"] { transform: none; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; } [data-aos], [data-aos] > * { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; } }
