body { font-family: 'IBM Plex Sans Arabic', sans-serif; }
.num { font-family: 'IBM Plex Sans', sans-serif; }
/* reveal on scroll */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
[data-reveal].in { opacity: 1; transform: none; }
[data-reveal-x] { opacity: 0; transform: translateX(20px); transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1); }
[data-reveal-x].in { opacity: 1; transform: none; }
/* grid backdrop */
.grid-bg { background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size:60px 60px; }
/* logo chip: white pill before scroll (dark bg), transparent after scroll (white nav) */
#nav .logo-chip { background:#fff; border-radius:12px; padding:6px 12px; box-shadow:0 6px 18px -8px rgba(0,0,0,.35); transition:background .35s ease, box-shadow .35s ease, padding .35s ease; }
#nav.nav-solid .logo-chip { background:transparent; box-shadow:none; padding:6px 0; }
/* nav solid (scrolled) state contrast */
#nav.nav-solid .nav-link { color:#3f5566; }
#nav.nav-solid .nav-link:hover { color:#0B2A45; }
#nav.nav-solid .burger { color:#0B2A45; }
@media (prefers-reduced-motion: reduce) {
    [data-reveal],[data-reveal-x] { opacity:1 !important; transform:none !important; transition:none; }
    .animate-floaty,.animate-floaty2,.animate-gridmove,.animate-pulse2 { animation:none !important; }
}
