/* UdaLit — слой анимаций и тонкой цветовой доводки.
   Подключается после styles.css и ничего в нём не переписывает по смыслу:
   те же цвета, шрифты и сетка, только движение, свет и отклик. */
:root{--e-out:cubic-bezier(.16,1,.3,1);--e-io:cubic-bezier(.65,0,.35,1);--grad:linear-gradient(130deg,#04ccf6 0%,#0473e1 90%);--liquid:linear-gradient(180deg,#4decff 0%,#09aefa 18%,#0083db 53%,#0445ae 92%)}

/* ---------- общие мелочи ---------- */
::selection{background:#06c4f1;color:#fff}
main{overflow-x:clip}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #06c4f1;outline-offset:3px;border-radius:10px}
html{scrollbar-color:#9fc3dd #eef3f8}
::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:#eef3f8}::-webkit-scrollbar-thumb{background:linear-gradient(#06c4f1,#0473e1);border-radius:10px;border:3px solid #eef3f8}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}

/* прогресс прокрутки */
.m-progress{position:fixed;z-index:60;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:linear-gradient(90deg,#06c4f1,#0878d8 60%,#0445ae);box-shadow:0 0 12px rgba(6,196,241,.55);pointer-events:none}

/* мягкие световые пятна на светлых секциях — та же гамма, меньше «плоского серого» */
.section-products,.section-uses,.section-contacts,.intro{position:relative}
.section-products::before,.section-uses::before,.section-contacts::before,.intro::before{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%}
.intro::before{width:720px;height:520px;right:-180px;top:-60px;background:radial-gradient(closest-side,rgba(6,196,241,.10),transparent)}
.section-products::before{width:900px;height:700px;left:-320px;top:40px;background:radial-gradient(closest-side,rgba(8,120,216,.08),transparent)}
.section-uses::before{width:820px;height:620px;right:-300px;top:0;background:radial-gradient(closest-side,rgba(6,196,241,.09),transparent)}
.section-contacts::before{width:900px;height:700px;left:-260px;bottom:0;background:radial-gradient(closest-side,rgba(8,120,216,.08),transparent)}

/* ---------- кнопки: блик, стрелки, отклик ---------- */
.btn,.nav-order,.review-button,.product-button,.submit-btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after,.nav-order::after,.review-button::after,.product-button::after{content:"";position:absolute;z-index:-1;inset:0 auto 0 -60%;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s var(--e-out);pointer-events:none}
.btn-outline::after{background:linear-gradient(100deg,transparent,rgba(6,196,241,.16),transparent)}
:is(.btn,.nav-order,.review-button,.product-button):hover::after{left:120%}
.btn{transition:transform .35s var(--e-out),box-shadow .35s var(--e-out),border-color .3s,background-color .3s}
.btn-blue:hover{box-shadow:0 20px 44px rgba(0,119,221,.36)}
.btn-outline:hover{border-color:#8fd2f5;box-shadow:0 14px 30px rgba(8,120,216,.12)}
.btn b,.nav-order span,.product-button span,.text-link,.round-arrow,.area-item i{transition:transform .35s var(--e-out),color .3s,background-color .3s,border-color .3s}
.btn:hover b,.nav-order:hover span,.product-button:hover span{transform:translate(3px,-3px)}
.nav-order{transition:box-shadow .35s var(--e-out),filter .3s}
.nav-order:hover{box-shadow:0 16px 36px rgba(0,105,210,.38);filter:saturate(1.1)}
.btn:active,.nav-order:active,.product-button:active,.review-button:active{transform:scale(.97)}
.review-button{transition:box-shadow .35s var(--e-out),background-color .3s,transform .2s}
.review-button:hover{background:#25b8f2;box-shadow:0 14px 34px rgba(22,169,231,.4)}
.text-link{display:inline-block;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .45s var(--e-out),color .3s}
.text-link:hover{background-size:100% 1px;color:#0473e1}

/* меню: подчёркивание и активный пункт */
.desktop-menu a,.m-bar-menu a{position:relative;padding:6px 0}
.desktop-menu a::after,.m-bar-menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,#06c4f1,#0878d8);transform:scaleX(0);transform-origin:100% 50%;transition:transform .45s var(--e-out)}
.desktop-menu a:hover::after,.desktop-menu a.is-active::after,.m-bar-menu a:hover::after,.m-bar-menu a.is-active::after{transform:scaleX(1);transform-origin:0 50%}
.desktop-menu a:last-child::after{background:linear-gradient(90deg,#7fe3ff,#06c4f1)}

/* бургер → крестик, мобильное меню выезжает */
.menu-toggle span{transition:transform .4s var(--e-out),opacity .25s}
.menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(.2)}
.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu:not([hidden]){animation:m-drop .45s var(--e-out) both}
.mobile-menu:not([hidden]) a{animation:m-up .5s var(--e-out) both}
.mobile-menu a:nth-child(2){animation-delay:.04s!important}.mobile-menu a:nth-child(3){animation-delay:.08s!important}.mobile-menu a:nth-child(4){animation-delay:.12s!important}.mobile-menu a:nth-child(5){animation-delay:.16s!important}
.mobile-menu a{transition:color .2s,padding-left .3s var(--e-out)}
.mobile-menu a:hover,.mobile-menu a:focus-visible{color:#0878d8;padding-left:22px}

/* ---------- плавающая шапка ---------- */
.m-bar{position:fixed;z-index:50;top:12px;left:50%;width:min(1180px,calc(100% - 24px));display:flex;align-items:center;gap:20px;padding:9px 10px 9px 22px;border-radius:20px;background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border:1px solid rgba(214,231,241,.9);box-shadow:0 18px 50px rgba(2,19,43,.12);transform:translate(-50%,-140%);transition:transform .6s var(--e-out)}
.m-bar.is-shown{transform:translate(-50%,0)}
.m-bar-logo img{height:36px;width:auto}
.m-bar-menu{display:flex;gap:24px;margin:auto}
.m-bar-menu a{text-decoration:none;color:#112139;font-size:12px;font-weight:800;white-space:nowrap;transition:color .2s}
.m-bar-menu a:hover,.m-bar-menu a.is-active{color:#0878d8}
.m-bar-phone{display:none;width:42px;height:42px;place-items:center;border-radius:50%;border:1px solid #d6e7f1;background:#f5fbff;color:#08568a;text-decoration:none;font-size:16px}
.m-bar .nav-order{padding:12px 20px}
@media(max-width:1080px){.m-bar-menu{gap:14px}.m-bar-menu a{font-size:10px}}
@media(max-width:800px){.m-bar{padding:7px 7px 7px 16px;gap:10px;border-radius:16px}.m-bar-menu{display:none}.m-bar-logo{margin-right:auto}.m-bar-logo img{height:30px}.m-bar-phone{display:grid}.m-bar .nav-order{padding:11px 15px;font-size:11px;margin-left:0}}

/* ---------- первый экран: вступление и «жизнь» ---------- */
.pulse{position:relative}
.pulse::after{content:"";position:absolute;inset:0;border-radius:50%;background:#00aefa;animation:m-ping 2.4s var(--e-out) infinite}
.hero-title .liquid{background-image:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.75) 50%,transparent 58%),var(--liquid);background-size:260% 100%,100% 100%;background-repeat:no-repeat;background-position:160% 0,0 0}
.m-go .hero-title .liquid{animation:m-glare 7s 1.6s var(--e-io) infinite}
.m-go .hero-title .subline{animation-delay:1.85s}
.hero-meta strong{font-variant-numeric:tabular-nums}

/* стартовые состояния — только пока не запущено вступление (без JS всё видно сразу) */
.m-on:not(.m-go) :is(.site-nav>*,.hero-kicker,.hero-title>span,.hero-meta,.hero-actions,.hero-aside,.hero-product>*,.side-label,.area-item,.hero-ticker,.hero-curve){opacity:0}
.m-go .site-nav>*{animation:m-down .9s var(--e-out) both}
.m-go .site-nav>:nth-child(2){animation-delay:.08s}.m-go .site-nav>:nth-child(3){animation-delay:.16s}.m-go .site-nav>:nth-child(4){animation-delay:.16s}
.m-go .hero-curve{animation:m-curve 1.6s var(--e-out) both}
.m-go .hero-kicker{animation:m-up .9s .15s var(--e-out) both}
.m-go .hero-title>span{animation:m-line 1.1s var(--e-out) both}
.m-go .hero-title>span:nth-child(1){animation-delay:.22s}
.m-go .hero-title>span:nth-child(2){animation-delay:.32s}
.m-go .hero-title>span:nth-child(3){animation-delay:.44s}
.m-go .hero-title>span:nth-child(4){animation-delay:.54s}
.m-go .hero-title>.liquid{animation:m-line 1.1s .22s var(--e-out) both,m-glare 7s 1.6s var(--e-io) infinite}
.m-go .hero-title>.subline{animation:m-line 1.1s .32s var(--e-out) both,m-glare 7s 1.75s var(--e-io) infinite}
.m-go .hero-meta{animation:m-up .9s .7s var(--e-out) both}
.m-go .hero-actions{animation:m-up .9s .8s var(--e-out) both}
.m-go .hero-aside{animation:m-up .9s .9s var(--e-out) both}
.m-go .hero-product>img:not(.hero-water){animation:m-rise 1.5s .35s var(--e-out) both,m-float 6.5s 1.9s ease-in-out infinite}
.m-go .hero-water{animation:m-splash 1.8s .5s var(--e-out) both,m-sway 9s 2.3s ease-in-out infinite}
.m-go .hero-halo{animation:m-fade 1.6s .4s both,m-breathe 5s 2s ease-in-out infinite}
.m-go .water-orbit{animation:m-fade 1.4s .7s both,m-spin 46s linear infinite}
.m-go .orbit-two{animation:m-fade 1.4s .85s both,m-spin 64s linear infinite reverse}
.m-go .hero-ml{animation:m-up .9s 1.1s var(--e-out) both}
.m-go .side-label{animation:m-fade 1s .7s both}
.m-go .area-item{animation:m-left .9s var(--e-out) both}
.m-go .area-item:nth-of-type(1){animation-delay:.75s}.m-go .area-item:nth-of-type(2){animation-delay:.85s}.m-go .area-item:nth-of-type(3){animation-delay:.95s}.m-go .area-item:nth-of-type(4){animation-delay:1.05s}
.m-go .hero-ticker{animation:m-up 1s 1s var(--e-out) both}

/* карточки направлений в первом экране */
.area-item{transition:transform .45s var(--e-out),background .3s,border-color .3s,box-shadow .3s}
.area-item:hover{border-color:rgba(101,198,253,.55);box-shadow:0 10px 30px rgba(0,0,0,.25),inset 0 0 0 1px rgba(101,198,253,.15)}
.area-thumb img{transition:transform .6s var(--e-out)}
.area-item:hover .area-thumb img{transform:scale(1.12)}
.area-item:hover i{transform:translate(3px,-3px);color:#fff}

/* пузырьки */
.m-bubble{position:absolute;z-index:2;bottom:-10px;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.9),rgba(160,228,255,.25) 40%,rgba(120,214,255,.06) 68%);box-shadow:inset 0 0 0 1px rgba(190,236,255,.55);opacity:0;animation:m-bubble var(--t,9s) var(--d,0s) linear infinite}

/* бегущая строка */
.hero-ticker.m-marquee{justify-content:flex-start;overflow:hidden;gap:0;padding-inline:0;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.m-track{display:flex;width:max-content;animation:m-marquee 38s linear infinite}
.hero-ticker:hover .m-track{animation-play-state:paused}
.m-group{display:flex;align-items:center;gap:56px;padding-right:56px}
.m-group span{display:inline-block;animation:m-twinkle 3.2s ease-in-out infinite}
.m-group span:nth-child(2n){animation-delay:-1.1s}.m-group span:nth-child(3n){animation-delay:-2.2s}
@media(max-width:800px){.m-group{gap:30px;padding-right:30px}.m-track{animation-duration:26s}}

/* ---------- появление при прокрутке ---------- */
.r{opacity:0;translate:0 38px;transition:opacity .9s var(--e-out) var(--d,0s),translate 1.1s var(--e-out) var(--d,0s)}
.r.in{opacity:1;translate:0 0}
.r-clip{clip-path:inset(0 0 100% 0);translate:0 .35em;transition:clip-path 1.1s var(--e-out) var(--d,0s),translate 1.1s var(--e-out) var(--d,0s)}
.r-clip.in{clip-path:inset(-12% -4% -18% -4%);translate:0 0}
.r-img{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s var(--e-out) var(--d,0s)}
.r-img.in{clip-path:inset(0 0 0 0)}
.r-img img{scale:1.18;transition:scale 1.6s var(--e-out) var(--d,0s),transform .6s var(--e-out)}
.r-img.in img{scale:1}
.section-dot{display:inline-block}
.in .section-dot,.section-dot.in{animation:m-drip 1.1s .45s var(--e-out) both}

/* «серое становится чистым»: заливка фирменным градиентом по мере прокрутки */
.m-on .huge-title em,.m-on .review-layout h2 span{-webkit-box-decoration-break:slice;box-decoration-break:slice;background-repeat:no-repeat;background-size:calc(var(--f,0)*100%) 100%,100% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.m-on .huge-title em{background-image:var(--liquid),linear-gradient(#98abbc,#98abbc)}
.m-on .review-layout h2 span{background-image:linear-gradient(180deg,#b6f3ff 0%,#4fd0ff 45%,#16a9e7 100%),linear-gradient(#718da8,#718da8)}

/* ---------- продукция ---------- */
.product-card{transition:box-shadow .5s var(--e-out),border-color .4s,transform .5s var(--e-out);transform-style:preserve-3d;will-change:transform}
.product-card:hover{border-color:#bfe3f7;box-shadow:0 30px 70px rgba(8,92,170,.16)}
@media(hover:none){.product-card:active{transform:translateY(-4px)}}
.product-image img{transition:transform .9s var(--e-out)}
.product-card:hover .product-image.cover img{transform:scale(1.06)}
.product-card:hover .product-image.single img{transform:translateY(-8px) rotate(-3deg) scale(1.03)}
.product-image::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.38) 48%,transparent 62%);transform:translateX(-110%);transition:transform 1s var(--e-out);pointer-events:none}
.product-card:hover .product-image::after{transform:translateX(110%)}
.product-top span:last-child{padding:5px 9px;border-radius:999px;background:#eef6fc;color:#0878d8;transition:background .3s,color .3s}
.product-card:hover .product-top span:last-child{background:#0878d8;color:#fff}
.product-info h3{transition:color .35s}
.product-card:hover .product-info h3{color:#0659b8}
.product-button{transition:background .35s,box-shadow .35s}
.product-button:hover{background:linear-gradient(110deg,#00b6ee,#0566c9);box-shadow:0 12px 26px rgba(5,102,201,.3)}

/* ---------- преимущества ---------- */
.benefit{position:relative;overflow:hidden;transition:transform .5s var(--e-out),box-shadow .5s var(--e-out),border-color .4s}
.benefit::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,#06c4f1,#0878d8);transform:scaleX(0);transform-origin:0 50%;transition:transform .7s var(--e-out)}
.benefit::after{content:"";position:absolute;width:260px;height:260px;right:-120px;bottom:-140px;border-radius:50%;background:radial-gradient(closest-side,rgba(6,196,241,.16),transparent);opacity:0;transition:opacity .5s,transform .8s var(--e-out);transform:scale(.6)}
.benefit:hover{transform:translateY(-6px);border-color:#cfe8f6;box-shadow:0 26px 60px rgba(8,92,170,.12)}
.benefit:hover::before{transform:scaleX(1)}
.benefit:hover::after{opacity:1;transform:scale(1)}
.benefit-icon{display:inline-block;transition:transform .8s var(--e-out),color .3s}
.benefit:hover .benefit-icon{transform:rotate(90deg) scale(1.15);color:#06c4f1}
.benefit:nth-child(1):hover .benefit-icon{transform:translate(6px,-6px) scale(1.15)}
.benefit>span{transition:color .3s}
.benefit:hover>span{color:#0878d8}

.benefits-banner::before{content:"";position:absolute;z-index:1;width:620px;height:620px;left:38%;top:-55%;border-radius:50%;background:radial-gradient(closest-side,rgba(6,196,241,.45),transparent);animation:m-drift 14s ease-in-out infinite alternate;pointer-events:none}
.benefits-banner::after{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.10) 50%,transparent 65%);background-size:250% 100%;animation:m-sheen 9s ease-in-out infinite;pointer-events:none}
.benefits-banner img{z-index:2;animation:m-float 7s ease-in-out infinite}
.round-arrow{transition:transform .5s var(--e-out),background .3s,color .3s,border-color .3s}
.round-arrow:hover{background:#fff;color:#0659b8;border-color:#fff;transform:rotate(45deg)}

/* ---------- где использовать ---------- */
.use-card{transition:transform .5s var(--e-out),box-shadow .5s var(--e-out),border-color .4s}
.use-card:hover{transform:translateY(-6px);border-color:#cfe8f6;box-shadow:0 26px 60px rgba(8,92,170,.12)}
.use-image{position:relative}
.use-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(4,40,90,.35));opacity:0;transition:opacity .5s}
.use-card:hover .use-image::after{opacity:1}
.use-card:hover .use-image img{transform:scale(1.07)}
.use-copy h3{transition:color .35s,letter-spacing .5s var(--e-out)}
.use-card:hover .use-copy h3{color:#0659b8}

/* ---------- отзывы ---------- */
.reviews-section{position:relative;overflow:hidden;isolation:isolate}
.reviews-section::before,.reviews-section::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
.reviews-section::before{width:760px;height:760px;left:-260px;top:-320px;background:radial-gradient(closest-side,rgba(8,120,216,.32),transparent);animation:m-drift 16s ease-in-out infinite alternate}
.reviews-section::after{width:620px;height:620px;right:-200px;bottom:-320px;background:radial-gradient(closest-side,rgba(6,196,241,.22),transparent);animation:m-drift 13s ease-in-out infinite alternate-reverse}
.review-panel{position:relative;transition:border-color .4s,box-shadow .5s var(--e-out)}
.review-panel:hover{border-color:#2f6f98;box-shadow:0 30px 70px rgba(0,0,0,.3),0 0 0 1px rgba(82,202,255,.12)}
.review-quotes{display:inline-block;animation:m-bob 5s ease-in-out infinite}

/* ---------- контакты ---------- */
.contact-visual:after{animation:m-drift 12s ease-in-out infinite alternate}
.contact-visual>img{animation:m-float 7.5s ease-in-out infinite}
.contact-links a{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;padding-bottom:3px;transition:background-size .45s var(--e-out)}
.contact-links a:hover{text-decoration:none;background-size:100% 2px}
.contact-shortcuts a{transition:background .3s,border-color .3s,transform .35s var(--e-out)}
.contact-shortcuts a:hover{border-color:#9fd8f6;transform:translateY(-2px)}
.form-panel{transition:box-shadow .5s var(--e-out)}
.form-panel:focus-within{box-shadow:0 30px 70px rgba(20,59,100,.11)}
.form-panel label:not(.privacy){transition:color .25s}
.form-panel label:has(+ :is(input,select,textarea):focus){color:#0878d8}
.form-panel :is(input,select,textarea){transition:border-color .25s,box-shadow .25s,background-color .25s}
.form-panel :is(input,select,textarea):hover{border-color:#bcd6e8}
.form-panel :is(input,select,textarea):focus{background:#fff}
.form-panel :is(input,textarea):user-invalid{border-color:#e98b8b;box-shadow:0 0 0 3px rgba(233,139,139,.18)}
.m-flash{animation:m-flash 1.4s var(--e-out)}
.submit-btn.is-sending{pointer-events:none;opacity:.85}
.submit-btn.is-sending b{animation:m-spin 1s linear infinite}

/* подвал */
.site-footer>a:last-child{transition:color .3s}
.site-footer>a:last-child:hover{color:#0878d8}
.site-footer>a:first-child img{transition:transform .5s var(--e-out)}
.site-footer>a:first-child:hover img{transform:scale(1.04) rotate(-2deg)}

/* ---------- ключевые кадры ---------- */
@keyframes m-up{from{opacity:0;transform:translateY(26px)}}
@keyframes m-down{from{opacity:0;transform:translateY(-18px)}}
@keyframes m-left{from{opacity:0;transform:translateX(40px)}}
@keyframes m-fade{from{opacity:0}}
@keyframes m-drop{from{opacity:0;transform:translateY(-12px) scale(.98)}}
@keyframes m-line{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(45%)}to{opacity:1;clip-path:inset(-15% -5% -25% -5%);transform:none}}
@keyframes m-curve{from{opacity:0;translate:140px -40px}}
@keyframes m-rise{from{opacity:0;transform:translateY(90px) scale(.92) rotate(4deg)}}
@keyframes m-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(-1.2deg)}}
@keyframes m-splash{from{opacity:0;transform:scale(.7)}}
@keyframes m-sway{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.035) rotate(1.4deg)}}
@keyframes m-breathe{0%,100%{scale:1}50%{scale:1.09}}
@keyframes m-spin{to{rotate:360deg}}
@keyframes m-ping{0%{transform:scale(1);opacity:.6}80%,100%{transform:scale(3.4);opacity:0}}
@keyframes m-glare{0%,62%{background-position:160% 0,0 0}100%{background-position:-60% 0,0 0}}
@keyframes m-bubble{0%{opacity:0;transform:translate(0,0) scale(.6)}12%{opacity:.9}50%{transform:translate(var(--x,10px),-48vh) scale(1)}90%{opacity:.6}100%{opacity:0;transform:translate(calc(var(--x,10px)*-.5),-92vh) scale(.8)}}
@keyframes m-marquee{to{transform:translateX(-50%)}}
@keyframes m-twinkle{0%,100%{transform:scale(1) rotate(0);opacity:1}50%{transform:scale(1.25) rotate(45deg);opacity:.7}}
@keyframes m-drip{0%{opacity:0;transform:translateY(-1.2em) scaleY(1.4)}55%{opacity:1;transform:translateY(.06em) scaleY(.8) scaleX(1.2)}75%{transform:translateY(-.04em) scale(1)}100%{transform:none}}
@keyframes m-drift{from{transform:translate(0,0)}to{transform:translate(-90px,60px)}}
@keyframes m-sheen{0%,55%{background-position:120% 0}100%{background-position:-120% 0}}
@keyframes m-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes m-flash{0%{box-shadow:0 0 0 0 rgba(6,196,241,.55)}100%{box-shadow:0 0 0 18px rgba(6,196,241,0)}}

/* ---------- кто отключил анимации в системе — получает спокойную версию ---------- */
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
 .r,.r-clip,.r-img,.r-img img{opacity:1!important;translate:none!important;clip-path:none!important;scale:none!important}
 .m-bubble{display:none}
}
