/* Animation layer – switched from Customize → ✨ אנימציות (body classes). */
@keyframes mo-probe { to { opacity: .99; } }
@keyframes mo-kenburns { from { transform: scale(1.02); } to { transform: scale(1.1); } }
@keyframes mo-stripes { to { background-position: 40px 0; } }
@keyframes mo-shine { to { transform: translateX(-260%) skewX(-20deg); } }
@keyframes mo-swing { 0%, 100% { transform: rotate(-2.2deg); } 50% { transform: rotate(2.2deg); } }
.mo-probe { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); pointer-events: none; animation: mo-probe 1000s linear infinite; }
.is-off, .is-off *, .is-off *::before, .is-off *::after { animation-play-state: paused !important; }

/* Reveal on scroll (classes added by JS – without JS everything stays visible). */
.mo-reveal .mo-rv { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); transition-delay: var(--d, 0s); }
.mo-reveal .mo-rv.mo-in { opacity: 1; transform: none; }

/* Hero: slow zoom + the rope swings gently. */
.mo-hero.mo-ready .hero-media img { animation: mo-kenburns 16s ease-out forwards; }
.mo-hero.mo-ready .hero-rope { transform-origin: top center; animation: mo-swing 6s ease-in-out infinite; }

/* Cards lift on hover (pointer devices). */
@media (hover: hover) and (pointer: fine) {
	.mo-lift .svc-card a:hover, .mo-lift .why-card:hover, .mo-lift .post-card:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .55); }
	.mo-gallery .gal-item a:hover img { transform: scale(1.07); }
}

/* Hazard stripes move slowly. */
.mo-stripes.mo-ready .stripes { animation: mo-stripes 2.4s linear infinite; }

/* Button shine. */
.mo-shine .btn { position: relative; overflow: hidden; isolation: isolate; }
.mo-shine .btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: 110%; width: 40%; z-index: 1; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .55), transparent); transform: skewX(-20deg); }
.mo-shine .btn:hover::after, .mo-shine .btn:focus-visible::after { animation: mo-shine .8s ease forwards; }

/* Full stop (accessibility tool or window.moAnim.stop()). */
html.mo-stopped *:not(.mo-probe), html.mo-stopped *::before, html.mo-stopped *::after { animation: none !important; }
html.mo-stopped .mo-rv { opacity: 1 !important; transform: none !important; transition: none !important; }
html.mo-stopped .rope-progress { display: none !important; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
	.mo-rv { opacity: 1 !important; transform: none !important; }
}
