mctayasi
home.html
<!DOCTYPE html>
<html lang="ru">
<head>
<title>MetaYasi - Enjoy in Digital</title>
<meta charset="UTF-8">
<meta name="format-detection" content="telephone=no">
<!-- <style>body{opacity: 0;}</style> -->
<link rel="stylesheet" href="css/style.min.css?_v=20220808230408">
<link rel="shortcut icon" href="img/favicon.png">
<!-- <meta name="robots" content="noindex, nofollow"> -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<!-- General container -->
<div class="wrapper">
<header class="header">
<div class="header__inner">
<div class="header__menu menu">
<nav class="menu__body">
<div class="header__logo">
<a href="#" class="logo">
<svg width="187"
height="20" viewBox="0 0 187 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-
rule="evenodd" clip-rule="evenodd" d="M46.0604 10.1513C46.0604 11.4902 44.975
12.5755 43.6362 12.5755C42.2973 12.5755 41.2119 11.4902 41.2119 10.1513C41.2119
8.81242 42.2973 7.72705 43.6362 7.72705C44.975 7.72705 46.0604 8.81242 46.0604
10.1513ZM94.0149 10.1513C94.0149 11.4902 92.9296 12.5755 91.5907 12.5755C90.2518
12.5755 89.1665 11.4902 89.1665 10.1513C89.1665 8.81242 90.2518 7.72705 91.5907
7.72705C92.9296 7.72705 94.0149 8.81242 94.0149 10.1513ZM141.591 12.5755C142.93
12.5755 144.015 11.4902 144.015 10.1513C144.015 8.81242 142.93 7.72705 141.591
7.72705C140.252 7.72705 139.166 8.81242 139.166 10.1513C139.166 11.4902 140.252
12.5755 141.591 12.5755Z" fill="#00D4FF" />
<path fill-
rule="evenodd" clip-rule="evenodd" d="M7.87879 0C3.52745 0 0 3.52745 0
7.87879V20H3.63636V7.87879C3.63636 5.53576 5.53576 3.63636 7.87879
3.63636C10.2218 3.63636 12.1212 5.53576 12.1212
7.87879V20H15.7576V7.87879C15.7576 5.53576 17.657 3.63636 20 3.63636C22.343
3.63636 24.2424 5.53576 24.2424 7.87879V20H27.8788V7.87879C27.8788 3.52745 24.3513
0 20 0C17.5631 0 15.3846 1.10634 13.9394 2.84415C12.4942 1.10634 10.3157 0 7.87879
0ZM80.6818 10.9091C80.6818 4.88417 85.566 0 91.5909 0C97.6158 0 102.5 4.88417 102.5
10.9091V20H98.8636V10.9091C98.8636 6.89247 95.6075 3.63636 91.5909
3.63636C87.5743 3.63636 84.3182 6.89247 84.3182
10.9091V20H80.6818V10.9091ZM141.591 0C135.566 0 130.682 4.88417 130.682
10.9091V20H134.318V10.9091C134.318 6.89247 137.574 3.63636 141.591
3.63636C145.608 3.63636 148.864 6.89247 148.864 10.9091V20H152.5V10.9091C152.5
4.88417 147.616 0 141.591 0ZM33.1061 10.1515C33.1061 4.71235 37.5154 0.30303
42.9545 0.30303H52.0555V3.93939H42.9545C39.5237 3.93939 36.7424 6.72066 36.7424
10.1515C36.7424 13.5824 39.5237 16.3636 42.9545
16.3636H52.0555V20H42.9545C37.5154 20 33.1061 15.5907 33.1061 10.1515ZM65.6061
3.93939V20H69.2424V3.93939H76.5152V0.30303L58.3333 0.30303V3.93939L65.6061
3.93939ZM183.258 0.30303L186.894 0.30303V20H183.258V0.30303ZM118.485
10.9059C120.663 10.5323 122.69 9.49344 124.273 7.90978C124.906 7.27759 125.451
6.57468 125.902 5.81969L124.471 4.96504L125.902 5.81969C126.89 4.16589 127.424
2.26203 127.424 0.30303H124.091C124.091 1.65491 123.722 2.96882 123.04
4.11038C122.729 4.63132 122.353 5.11635 121.916 5.55276C120.524 6.94508 118.636
7.72727 116.667 7.72727C114.698 7.72727 112.809 6.94508 111.417 5.55276C110.981
5.11635 110.604 4.63133 110.293 4.11038C109.611 2.96882 109.242 1.65491 109.242
0.303032L105.909 0.303032C105.909 2.26203 106.443 4.16589 107.431 5.8197C107.882
6.57468 108.428 7.27759 109.06 7.90979C110.644 9.49344 112.67 10.5323 114.848
10.9059V20H118.485V10.9059ZM157.576 6.13636C157.576 2.9147 160.187 0.30303
163.409 0.30303H175.303V3.93939H163.409C162.196 3.93939 161.212 4.92301 161.212
6.13636C161.212 7.34972 162.196 8.33333 163.409
8.33333H165.232H170.632H171.288C174.51 8.33333 177.121 10.945 177.121
14.1667C177.121 17.3883 174.51 20 171.288 20H159.394V16.3636H171.288C172.501
16.3636 173.485 15.38 173.485 14.1667C173.485 12.9533 172.501 11.9697 171.288
11.9697H170.632H165.232H163.409C160.187 11.9697 157.576 9.35802 157.576 6.13636Z"
fill="url(#paint0_linear_4_129)" />
<defs>
<linearGradient id="paint0_linear_4_129" x1="93.447" y1="0" x2="93.447" y2="20"
gradientUnits="userSpaceOnUse">
<stop
stop-color="white" />
<stop
offset="1" stop-color="#ECF6F8" stop-opacity="0.85" />
</linearGradient>
</defs>
</svg>
</a>
</div>
<ul class="menu__list">
<li class="menu__item"><a href="#"
data-goto-header data-goto=".intro" class="menu__link">About</a></li>
<li class="menu__item"><a href="#"
data-goto-header data-goto=".principles" class="menu__link">Team leaders</a></li>
<li class="menu__item"><a href="#"
data-goto-header data-goto=".crypto" class="menu__link">Digital soluitions</a></li>
<li class="menu__item"><a href="#"
data-goto-header data-goto=".projects" class="menu__link">Projects</a></li>
<li class="menu__item"><a href="#"
data-goto-header data-goto=".contact" class="menu__link">Contact us</a></li>
</ul>
<button type="button" class="menu__icon
icon-menu"><span></span></button>
</nav>
</div>
</div>
</header>
<!-- General main container -->
<main class="page">
<!-- Intro section (first block) -->
<section class="intro">
<div class="intro__container">
<div class="intro__inner _anim-items">
<h1 class="intro__title">
We are a web 3.0 company,
exploring <span>big ideas</span> and creating
<span>universal economies</span>
in the digital world
</h1>
<a href="#" class="button
intro__button">Talk to us</a>
</div>
</div>
</section>
<!-- About section (second block) -->
<section class="about">
<div class="about__container">
<div class="about__inner">
<!-- About title -->
<h2 class="about__title _anim-items">
Our company is focused on
producing and investing in digital projects, digital assets and
metaverses
</h2>
<div class="about__descriptions">
<p class="text about__text _anim-
items">
We are going to attract
investments for our projects using the modern digital
technologies based on
blockchain
</p>
<p class="text about__text _anim-
items">
We handle the entire
product development process from initial requirements to launch and
operation
</p>
</div>
<!-- List of features -->
<div class="about__list">
<!-- Start swiper slider -->
<div class="about__slider swiper">
<!-- Swiper slider container --
>
<div class="about__wrapper
swiper-wrapper">
<!-- Swiper slider
slide -->
<div
class="about__slide swiper-slide _anim-items">
<div
class="about__item">
<!--
Feature black text -->
<p
class="about__feature">
Experince
</p>
<!--
Feature white amount -->
<p
class="about__amount">
7
</p>
<!--
Feature black text -->
<p
class="about__feature">
years
</p>
</div>
</div>
<div
class="about__slide swiper-slide _anim-items">
<div
class="about__item">
<!--
Feature black text -->
<p
class="about__feature">
Team
</p>
<!--
Feature white amount -->
<p
class="about__amount">
80
</p>
</div>
</div>
<div
class="about__slide swiper-slide _anim-items">
<div
class="about__item">
<!--
Feature black text -->
<p
class="about__feature">
Projects
</p>
<!--
Feature white amount -->
<p
class="about__amount">
92
</p>
</div>
</div>
<div
class="about__slide swiper-slide _anim-items">
<div
class="about__item">
<!--
Feature black text -->
<p
class="about__feature">
Offices
</p>
<!--
Feature white amount -->
<p
class="about__amount">
5
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Our Principles section (third block (after about/before team
leaders)) -->
<section class="principles">
<div class="principles__container">
<div class="principles__inner">
<h2 class="title principles__title _anim-
items">
Our Principles
</h2>
<div class="principles__list">
<div class="principles__item _anim-
items">
<!-- Title of principles
item(Blue text) -->
<h3
class="principles__principle">
Flexibility
</h3>
<!-- Description of principle --
>
<p class="text
principles__text">
We propose several
solution options, which makes it possible to look at any idea
from different angles
</p>
</div>
<div class="principles__item _anim-
items">
<!-- Title of principles
item(Blue text) -->
<h3
class="principles__principle">
Product approach
</h3>
<!-- Description of principle --
>
<p class="text
principles__text">
We use the product
approach in project development of varying complexity
</p>
</div>
<div class="principles__item _anim-
items">
<!-- Title of principles
item(Blue text) -->
<h3
class="principles__principle">
Timeliness
</h3>
<!-- Description of principle --
>
<p class="text
principles__text">
100% of our projects
were launched on time
</p>
</div>
<div class="principles__item _anim-
items">
<!-- Title of principles
item(Blue text) -->
<h3
class="principles__principle">
Team's composition
</h3>
<!-- Description of principle --
>
<p class="text
principles__text">
Highly professional
specialists with a great background in projects of digital and
technologies
</p>
</div>
</div>
</div>
</div>
</section>
<!-- Team Leaders (fourth block ) -->
<section class="team">
<div class="team__container">
<div class="team__inner">
<h2 class="title team__title _anim-items">
Team Leaders
</h2>
<div class="team__list">
<div class="team__slider swiper">
<div class="team__wrapper
swiper-wrapper">
<div
class="team__slide swiper-slide _anim-items">
<div
class="team__item">
<div
class="team__img">
<picture><source srcset="img/team/team1.webp" type="image/webp"><img
src="img/team/team1.jpg" alt="Employe photo"></picture>
</div>
<h3
class="team__name">
Mohamed Hamdan Al Falahi
</h3>
<p
class="text team__text">
Chairman
</p>
</div>
</div>
<div
class="team__slide swiper-slide _anim-items">
<div
class="team__item">
<div
class="team__img">
<picture><source srcset="img/team/team2.webp" type="image/webp"><img
src="img/team/team2.jpg" alt="Employe photo"></picture>
</div>
<h3
class="team__name">
Mohamed Obaid Ahmed Al Zaabi
</h3>
<p
class="text team__text">
Vice-Chairman
</p>
</div>
</div>
<div
class="team__slide swiper-slide _anim-items">
<div
class="team__item">
<div
class="team__img">
<picture><source srcset="img/team/team3.webp" type="image/webp"><img
src="img/team/team3.jpg" alt="Employe photo"></picture>
</div>
<h3
class="team__name">
Alexey <br> Shestakov
</h3>
<p
class="text team__text">
CEO
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Crypto Projects -->
<section class="crypto">
<div class="crypto__container">
<div class="crypto__inner">
<h2 class="title crypto__title _anim-items">
Crypto projects
</h2>
<div class="crypto__list">
<div class="crypto__slider swiper">
<div class="crypto__wrapper
swiper-wrapper">
<div
class="crypto__slide swiper-slide _anim-items">
<div
class="crypto__item icon-item">
<div
class="crypto__icon icon-circle crypto__icon-exchanges">
</div>
<p
class="text">
Exchanges
</p>
</div>
</div>
<div
class="crypto__slide swiper-slide _anim-items">
<div
class="crypto__item icon-item">
<div
class="crypto__icon icon-circle crypto__icon-market">
</div>
<p
class="text">
Marketplaces
</p>
</div>
</div>
<div
class="crypto__slide swiper-slide _anim-items">
<div
class="crypto__item icon-item">
<div
class="crypto__icon icon-circle crypto__icon-tokens">
</div>
<p
class="text">
Tokens
</p>
</div>
</div>
<div
class="crypto__slide swiper-slide _anim-items">
<div
class="crypto__item icon-item">
<div
class="crypto__icon icon-circle crypto__icon-dao">
</div>
<p
class="text">
DAO-platforms
</p>
</div>
</div>
</div>
</div>
</div>
<div class="crypto__descritions icon-item
icon-item_purple">
<p class="crypto__text item icon-text
_anim-items">
A full cycle of blockchain
software development with a deep understanding of the
principles of decentralized
database operations as well as cryptography.
</p>
<p class="crypto__text item icon-
text icon-text_blue _anim-items">
We come up with
revolutionary solutions in blockchain projects.
</p>
</div>
</div>
</div>
</section>
<!-- Virual reality -->
<section class="virtual">
<div class="virtual__container">
<div class="virtual__inner">
<h2 class="title virtual__title _anim-items">
Virtual reality
</h2>
<div class="virtual__slider swiper">
<div class="virtual__wrapper swiper-
wrapper">
<div class="virtual__slide
swiper-slide _anim-items">
<div class="icon-item
icon-item_purple">
<div
class="icon-circle icon-circle-meta">
</div>
<p
class="text text_white">
Metaverses
</p>
</div>
</div>
<div class="virtual__slide
swiper-slide _anim-items">
<div class="icon-item
icon-item_purple">
<div
class="icon-circle icon-circle-3d">
</div>
<p
class="text text_white">
3D
applications
</p>
</div>
</div>
</div>
<div class="icon-descriptions
virtual__icon-descriptions">
<p class="icon-text icon-
text_white virtual__text _anim-items">
Best practices in
computer graphics, graphics units and graphic data processing
allow us to convert
the most incredible and abstract ideas into real 3D apps
</p>
<p class="icon-text icon-
text_blue virtual__text _anim-items">
Our teams overcome
all challenges in 3D developing with all the latest, cutting-edge
technologies
</p>
</div>
</div>
</div>
</div>
</section>
<!-- Data Systems -->
<section class="data">
<div class="data__container">
<div class="data__inner">
<h2 class="title data__title _anim-items">
Data Systems
</h2>
<div class="data__slider swiper">
<div class="data__wrapper swiper-
wrapper">
<div class="data__slide
swiper-slide _anim-items">
<div class="icon-item
">
<div
class="icon-circle icon-circle-soft">
</div>
<p
class="text">
Software
</p>
</div>
</div>
<div class="data__slide
swiper-slide _anim-items">
<div class="icon-item
">
<div
class="icon-circle icon-circle-apps">
</div>
<p
class="text">
Apps
</p>
</div>
</div>
<div class="data__slide
swiper-slide _anim-items">
<div class="icon-item
">
<div
class="icon-circle icon-circle-is">
</div>
<p
class="text">
Information systems
</p>
</div>
</div>
</div>
</div>
<div class="icon-descriptions">
<p class="icon-text data__text
_anim-items">
One of our key competencies
design and management of complex IT solutions and Internet
projects
</p>
<p class="icon-text data__text icon-
text_blue _anim-items">
We provide analysis, design
of technical architecture and development of software
</p>
</div>
</div>
</div>
</section>
<!-- Projects -->
<section class="projects">
<div class="projects__container">
<div class="projects__inner">
<h2 class="title projects__title _anim-
items">
Projects
</h2>
<!-- Slider -->
<div class="projects__slides _anim-items">
<div class="projects__slider swiper">
<!-- Moving part of slider -->
<div
class="projects__wrapper swiper-wrapper">
<!-- Slide -->
<div
class="projects__slide swiper-slide">
<div
class="projects__item">
<div
class="projects__img">
<picture><source srcset="img/projects/orica.webp" type="image/webp"><img
src="img/projects/orica.jpg" alt="Orica"></picture>
</div>
<div
class="projects__text">
<h3 class="projects__name">
Orica
</h3>
<p class="text">
The artist-LED, ethical NFT platform and creator community
</p>
</div>
</div>
</div>
<!-- Slide -->
<div
class="projects__slide swiper-slide">
<div
class="projects__item">
<div
class="projects__img">
<picture><source srcset="img/projects/punkcats.webp" type="image/webp"><img
src="img/projects/punkcats.jpg" alt="Punkcats"></picture>
</div>
<div
class="projects__text">
<h3 class="projects__name">
Punkcats
</h3>
<p class="text">
NFT market place where you can buy a couple of fluffy cats and then
breed your own funny cat family
</p>
</div>
</div>
</div>
<!-- Slide -->
<div
class="projects__slide swiper-slide">
<div
class="projects__item">
<div
class="projects__img">
<picture><source srcset="img/projects/digicol.webp" type="image/webp"><img
src="img/projects/digicol.jpg" alt="Digicol"></picture>
</div>
<div
class="projects__text">
<h3 class="projects__name">
DigiCol
</h3>
<p class="text">
NFT marketplace. Create your own tokenized digital artworks with no
coding required to be collected in a liquid NFT marketplace
</p>
</div>
</div>
</div>
<!-- Slide -->
<div
class="projects__slide swiper-slide">
<div
class="projects__item">
<div
class="projects__img">
<picture><source srcset="img/projects/rpgc.webp" type="image/webp"><img
src="img/projects/rpgc.jpg" alt="Orica"></picture>
</div>
<div
class="projects__text">
<h3 class="projects__name">
RPGC Token
</h3>
<p class="text">
Crypto-exchange. Our goal is to develop the ecosystem in a way that
will open new worlds for gamers
</p>
</div>
</div>
</div>
</div>
<!-- Pagination-->
</div>
<div class="swiper-pagination _anim-
items"></div>
</div>
</div>
</div>
</section>
<!-- Callback -->
<section class="callback">
<div class="callback__container">
<div class="callback__inner">
<h2 class="title callback__title _anim-
items">
Share your idea and we will unlock
its <span>full potential</span> together
</h2>
<form action="" class="callback__form"
method="POST">
<fieldset>
<input autocomplete
type="text" name="form[]" placeholder="Your name" class="input _anim-items">
<input autocomplete
type="text" name="form[]" data-error="Ошибка" placeholder="telegram, phone ore email"
class="input _anim-items">
<textarea
name="comments" placeholder="Comments" class="input _anim-items"></textarea>
</fieldset>
<button type="submit" class="button
_anim-items">
Send
</button>
</form>
</div>
</div>
</section>
<!-- Contact -->
<section class="contact">
<div class="contact__container">
<div class="contact__inner">
<h2 class="title contact__title _anim-items">
Contact us
</h2>
<div class="contact__data">
<div class="contact__phone _anim-
items">
<p class="text
contact__text">
Phone
</p>
<a
href="tel:+971503244041" class="accent-link">+971 50 3244041</a>
</div>
<div class="contact__mail _anim-
items">
<p class="text
contact__text">
Email
</p>
<a
href="mailto:info@metayasi.io" class="accent-link">info@metayasi.io</a>
</div>
<div class="contact__location _anim-
items">
<p class="text
contact__text">
Location
</p>
<address
class="contact__address"><a href="https://goo.gl/maps/k61D1UxiZj35gUCg6"
target="_blank">Gold Tower, 1st Al Khail street Jumeira Lake Towers, Dubai,
United Arab
Emirates</a></address>
</div>
</div>
<div class="contact__socials">
<h3 class="contact__subtitle _anim-
items">
Be a part of our community
</h3>
<ul class="socials__list">
<li class="socials__item
_anim-items">
<a href="#"
class="socials__link">
<svg
width="32" height="32" viewBox="0 0 32 32" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 23.9861
5.851 30.6053 13.5 31.8056V20.625H9.4375V16H13.5V12.475C13.5 8.465 15.8887 6.25
19.5434 6.25C21.294 6.25 23.125 6.5625 23.125 6.5625V10.5H21.1074C19.1199 10.5 18.5
11.7333 18.5 12.9986V16H22.9375L22.2281 20.625H18.5V31.8056C26.1491 30.6053 32
23.9861 32 16Z" fill="#8E99A9" />
</svg>
</a>
</li>
<li class="socials__item
_anim-items">
<a href="#"
class="socials__link">
<svg
width="32" height="32" viewBox="0 0 32 32" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 32C24.8366 32 32 24.8366
32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z"
fill="#8E99A9" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M21.8946 9.833C21.2499 9.09993
20.3311 8.63287 19.3143 8.61595C17.3621 8.58346 15.7792 10.2331 15.7792
12.3004C15.7792 12.5938 15.8104 12.8799 15.8707 13.1546C12.9327 12.964 10.3279
11.4341 8.58437 9.12794C8.28008 9.68055 8.1057 10.3264 8.1057 11.0183C8.1057 12.3281
8.7298 13.4905 9.67835 14.1768C9.09888 14.1513 8.55379 13.9758 8.07718
13.6881C8.07684 13.7038 8.07684 13.7195 8.07684 13.7355C8.07684 15.5647 9.2954
17.0991 10.9126 17.4566C10.616 17.5406 10.3037 17.5846 9.98127 17.5825C9.75348
17.581 9.53198 17.5557 9.31616 17.5104C9.76597 19.0104 11.0715 20.105 12.6184
20.1412C11.4086 21.1455 9.88435 21.7437 8.22804 21.7402C7.9427 21.7397 7.66132
21.7212 7.38477 21.6857C8.94923 22.7592 10.8074 23.3842 12.8038 23.3847C19.306
23.3864 22.8619 17.7278 22.8619 12.8197C22.8619 12.6587 22.8583 12.4985 22.8516
12.3391C23.5423 11.8244 24.1416 11.1792 24.6155 10.4423C23.9816 10.7281 23.3002
10.9179 22.5852 10.9975C23.315 10.5483 23.8756 9.82948 24.1395 8.96743C23.4564
9.38169 22.6999 9.67877 21.8946 9.833Z" fill="white" />
</svg>
</a>
</li>
<li class="socials__item
_anim-items">
<a href="#"
class="socials__link">
<svg
width="32" height="32" viewBox="0 0 32 32" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M16 0C7.163 0 0 7.163 0 16C0 24.836 7.163 32 16 32C24.837 32 32 24.836
32 16C32 7.163 24.837 0 16 0Z" fill="#8E99A9" />
<path d="M24.2938 22.9419V16.8049C24.2938 13.5169 22.5388 11.9869 20.1978
11.9869C18.3088 11.9869 17.4628 13.0259 16.9918 13.7549V12.2379H13.4338C13.4808
13.2429 13.4338 22.9419 13.4338 22.9419H16.9918V16.9639C16.9918 16.6449 17.0148
16.3249 17.1088 16.0969C17.3658 15.4579 17.9508 14.7959 18.9338 14.7959C20.2218
14.7959 20.7368 15.7769 20.7368 17.2159V22.9429L24.2938 22.9419ZM9.6848
10.7769C10.9248 10.7769 11.6978 9.95388 11.6978 8.92688C11.6748 7.87688 10.9248
7.07788 9.7078 7.07788C8.4908 7.07788 7.6958 7.87688 7.6958 8.92688C7.6958 9.95488
8.4678 10.7769 9.6628 10.7769H9.6848ZM11.4638
22.9419V12.2379H7.9068V22.9419H11.4638Z" fill="white" />
</svg>
</a>
</li>
<li class="socials__item
_anim-items">
<a href="#"
class="socials__link">
<svg
width="32" height="32" viewBox="0 0 32 32" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16
0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z" fill="#8E99A9" />
<path d="M23.2752 10.5438C23.2752 10.5438 21.1939 8.9126 18.7314
8.7251L18.5127 9.16885C20.7377 9.7126 21.7564 10.4938 22.8252 11.4501C20.9877
10.5126 19.1689 9.63135 16.0064 9.63135C12.8439 9.63135 11.0252 10.5126 9.18769
11.4501C10.2564 10.4938 11.4689 9.6251 13.5002 9.16885L13.2814 8.7251C10.7002
8.96885 8.73769 10.5438 8.73769 10.5438C8.73769 10.5438 6.4127 13.9188 6.0127
20.5438C8.35644 23.2501 11.9189 23.2688 11.9189 23.2688L12.6627 22.2751C11.4002
21.8376 9.96894 21.0501 8.73769 19.6313C10.2064 20.7438 12.4314 21.9063 16.0127
21.9063C19.5939 21.9063 21.8127 20.7501 23.2877 19.6313C22.0564 21.0501 20.6252
21.8376 19.3627 22.2751L20.1064 23.2688C20.1064 23.2688 23.6689 23.2501 26.0127
20.5438C25.6002 13.9188 23.2752 10.5438 23.2752 10.5438ZM13.0439 18.7251C12.1627
18.7251 11.4502 17.9126 11.4502 16.9063C11.4502 15.9001 12.1627 15.0876 13.0439
15.0876C13.9252 15.0876 14.6377 15.9001 14.6377 16.9063C14.6377 17.9126 13.9252
18.7251 13.0439 18.7251ZM18.9564 18.7251C18.0752 18.7251 17.3627 17.9126 17.3627
16.9063C17.3627 15.9001 18.0752 15.0876 18.9564 15.0876C19.8377 15.0876 20.5502
15.9001 20.5502 16.9063C20.5502 17.9126 19.8314 18.7251 18.9564 18.7251Z" fill="white"
/>
</svg>
</a>
</li>
<li class="socials__item
_anim-items">
<a href="#"
class="socials__link">
<svg
width="32" height="32" viewBox="0 0 32 32" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M15.8696 18.9916C17.4501 18.9916 18.7313 17.7103 18.7313
16.1298C18.7313 14.5493 17.4501 13.2681 15.8696 13.2681C14.2891 13.2681 13.0078
14.5493 13.0078 16.1298C13.0078 17.7103 14.2891 18.9916 15.8696 18.9916Z"
fill="#8E99A9" />
<path d="M19.4467 9.10547H12.2923C11.2517 9.10547 10.3411 9.43067 9.75577
10.016C9.17041 10.6014 8.84521 11.5119 8.84521 12.5526V19.707C8.84521 20.7476
9.17041 21.6581 9.82081 22.3085C10.4712 22.8939 11.3167 23.2191 12.3574
23.2191H19.4467C20.4873 23.2191 21.3979 22.8939 21.9832 22.3085C22.6336 21.7232
22.9588 20.8126 22.9588 19.772V12.6176C22.9588 11.577 22.6336 10.7315 22.0483
10.0811C21.3979 9.43067 20.5524 9.10547 19.4467 9.10547ZM15.8695 20.5525C13.398
20.5525 11.4468 18.5362 11.4468 16.1298C11.4468 13.6583 13.463 11.7071 15.8695
11.7071C18.276 11.7071 20.3573 13.6583 20.3573 16.1298C20.3573 18.6013 18.341
20.5525 15.8695 20.5525ZM20.4873 12.5526C19.902 12.5526 19.4467 12.0973 19.4467
11.5119C19.4467 10.9266 19.902 10.4713 20.4873 10.4713C21.0727 10.4713 21.528
10.9266 21.528 11.5119C21.528 12.0973 21.0727 12.5526 20.4873 12.5526Z" fill="#8E99A9"
/>
<path d="M15.9998 0C7.15437 0 0 7.15437 0 15.9998C0 24.8452 7.15437 31.9996
15.9998 31.9996C24.8452 31.9996 31.9996 24.8452 31.9996 15.9998C32.0646 7.15437
24.8452 0 15.9998 0ZM24.52 19.7721C24.52 21.268 23.9997 22.5688 23.0891
23.4794C22.1786 24.3899 20.8778 24.8452 19.4469 24.8452H12.3576C10.9267 24.8452
9.62589 24.3899 8.71533 23.4794C7.73973 22.5688 7.28445 21.268 7.28445
19.7721V12.6177C7.28445 9.62589 9.30069 7.54461 12.3576 7.54461H19.5119C21.0078
7.54461 22.2436 8.06493 23.1542 8.97549C24.0647 9.88604 24.52 11.1218 24.52
12.6177V19.7721Z" fill="#8E99A9" />
</svg>
</a>
</li>
</ul>
</div>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="footer__container">
<div class="footer__inner">
<h2 class="footer__title">Powered by
MetaYasi</h2>
<div class="more-projects">
<div class="more-projects__item">
<div class="more-projects__img">
<img
src="img/footer/dd.svg" alt="DD cryptocurrency">
</div>
<div>
<p class="more-
projects__name">DD cryptocurrency</p>
<a
href="https://ddirham.io/" class="more-projects__link accent-link">ddirham.io</a>
</div>
</div>
<div class="more-projects__item">
<div class="more-projects__img">
<img
src="img/footer/yaisex.svg" alt="Yasiex">
</div>
<div>
<p class="more-
projects__name">Yasiex</p>
<a href="#" class="more-
projects__link accent-link">ysiex.io</a>
</div>
</div>
</div>
<div class="footer__bottom">
<p class="footer__copy">Copyright © 2022
MetaYasi. All Rights Reserved</p>
<ul class="footer__list">
<li class="footer__item"><a
href="№" class="footer__link">Terms of use</a></li>
<li class="footer__item"><a
href="№" class="footer__link">AML Policy</a></li>
<li class="footer__item"><a
href="№" class="footer__link">Privacy Policy</a></li>
<li class="footer__item"><a
href="№" class="footer__link">Cookie Policy</a></li>
</ul>
</div>
</div>
</div>
</footer>
</div>
<!-- <div id="popup" aria-hidden="true" class="popup">
<div class="popup__wrapper">
<div class="popup__content">
<button data-close type="button"
class="popup__close">Закрыть</button>
<div class="popup__text">
Text
</div>
</div>
</div>
</div> -->
<script src="js/app.min.js?_v=20220808230408"></script>
</body>
</html>
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Верстка «mctayasi»</title>
</head>
<body>
<div class="rootpage">
<h1>Верстка «mctayasi»</h1>
<div class="rootpage__info">
Особенности проекта
</div>
<h2>Готовые страницы:</h2>
<ol class="rootpage__list">
<li><a target="_blank" href="home.html">Главная</a></li>
</ol>
<div class="rootpage__tnx">
<h2>Спасибо за заказ!</h2>
<p>Буду рад (а) хорошему отзыву.</p>
<p>Обращайтесь еще!</p>
</div>
<div class="rootpage__contacts">
<h2>Мои контакты:</h2>
<p>Почта: <a
href="mailto:gorsunfoster@gmail.com">gorsunfoster@gmail.com</a></p>
<p>Telegram: <a href="https://t.me/Gorsun4ik">Gorsun4ik</a></p>
</div>
</div>
</body>
<style>
@charset "UTF-8";
@import
url('https://fonts.googleapis.com/css2?family=Marck+Script&family=Open+Sans:wght@700
&display=swap');
*,
*::before,
*::after {
padding: 0px;
margin: 0px;
border: 0px;
box-sizing: border-box;
}
html,
body {
height: 100%;
margin: 0;
padding: 0;
min-width: 320px;
width: 100%;
color: #fff;
background-color: #0c0b08;
font-weight: 500;
}
body {
font-family: "Open Sans", sans-serif;
font-size: 100%;
line-height: 1;
font-size: 1rem;
}
a {
color: #01020c;
text-decoration: none;
}
h1 {
position: relative;
font-size: 5rem;
text-align: center;
}
ul li {
list-style: none;
}
img {
vertical-align: top;
}
.wrapper {
width: 100%;
min-height: 100%;
overflow: hidden;
}
.rootpage {
padding: 30px;
display: flex;
flex-direction: column;
align-items: center;
}
@media (max-width: 767px) {
.rootpage {
padding: 30px 15px;
justify-content: flex-start;
}
ol {
display: flex;
flex-direction: column;
justify-content: flex-start;
}
h2 {
font-size: 1rem;
}
}
h1 {
color: #fff;
font-size: 2.5rem;
margin: 0px 0px 1.25rem 0px;
font-family: 'Marck Script', cursive;
}
@media (max-width: 767px) {
h1 {
font-size: 1.85rem;
margin: 0px 0px 1.25rem 0px;
}
}
@media (max-width: 550px) {
h1 {
font-size: 1.5rem;
}
}
@media (max-width: 425px) {
h1 {
font-size: 1.25rem;
}
li {
font-size: 0.8rem
}
}
@media (max-width: 340px) {
.rootpage__contacts p {
margin-bottom: 10px;
}
}
@media (max-width: 375px) {
h1 {
font-size: 1.1rem;
}
}
h2 {
color: #fff;
font-size: 1.5rem;
margin: 0px 0px 1rem 0px;
font-family: 'Marck Script', cursive;
text-align: center;
}
@media (max-width: 767px) {
h2 {
font-size: 1.125rem;
margin: 0px 0px 1rem 0px;
}
.rootpage__info {
text-align: left;
}
}
.rootpage__info {
line-height: 140%;
font-size: .8rem;
margin: 0px 0px 1.5rem 0px;
}
.rootpage__list {
margin: 0px 0px 2.25rem 1.25rem;
}
.rootpage__list li:not(:last-child) {
margin: 0px 0px 15px 0px;
}
li a {
position: relative;
color: #fff;
}
li a::after {
position: absolute;
content: "";
width: 0%;
height: 2px;
background-color: whitesmoke;
left: 50%;
bottom: -5px;
transition: all 0.4s ease-in-out;
}
li a:hover:after {
width: 100%;
left: 0;
}
.rootpage__contacts,
.rootpage__tnx {
padding: 20px 65px;
line-height: 140%;
}
@media (max-width: 767px) {
.rootpage__contacts,
.rootpage__tnx {
padding: 20px;
}
}
.rootpage__contacts {
background: #DCCA87;
transition: background-color .3s ease;
color: #000;
text-align: center;
max-width: 400px;
width: 100%;
}
.rootpage__contacts h2 {
color: #000;
}
.rootpage__contacts p {
margin-bottom: 10px;
}
.rootpage__contacts a {
color: #000;
padding: 5px;
transition: color .3s, background-color .3s;
}
.rootpage__contacts a:hover {
background-color: #000;
color: #dcca87;
}
.rootpage__tnx {
color: #000;
background: #DCCA87;
margin: 0px 0px 1rem 0px;
text-align: center;
max-width: 400px;
width: 100%;
}
.rootpage__tnx h2 {
color: #000;
}
</style>
</html>
style.css
@import url(https://fonts.googleapis.com/css?family=Poppins:regular,500&display=swap);
@charset "UTF-8";
* {
padding: 0px;
margin: 0px;
border: 0px;
}
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
html,
body {
height: 100%;
min-width: 320px;
}
body {
color: #181E28;
line-height: 1;
font-family: "Poppins";
font-size: 1.25rem;
-ms-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
input,
button,
textarea {
font-family: "Poppins";
font-size: inherit;
}
button {
cursor: pointer;
color: inherit;
background-color: inherit;
}
a {
color: inherit;
}
a:link:not(.accent-link),
a:visited:not(.accent-link) {
text-decoration: none;
}
a:hover {
text-decoration: none;
}
ul li {
list-style: none;
}
img {
vertical-align: top;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: inherit;
font-size: inherit;
}
.lock body {
overflow: hidden;
-ms-touch-action: none;
touch-action: none;
}
.wrapper {
min-height: 100%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
overflow: hidden;
}
.wrapper > main {
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
}
.wrapper > * {
min-width: 0;
}
/*
(i) Стили будут применяться ко
всем классам содержащим *__container
Например header__container, main__container и т.д.
Снипет (HTML): cnt
*/
[class*=__container] {
max-width: 75rem;
-webkit-box-sizing: content-box;
box-sizing: content-box;
margin: 0 auto;
padding: 0 0.9375rem;
}
fieldset {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
gap: 16px;
margin-bottom: 4rem;
}
.button {
display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
padding: 0px 0px;
}
.button._fw {
width: 100%;
}
form .button {
color: #fff;
display: inline-block;
background-color: #0075FF;
border-radius: 8px;
padding: 16px 48px;
text-align: center;
}
input[type=text],
input[type=email],
input[type=tel],
textarea {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.input {
border-radius: 8px;
width: 100%;
display: block;
padding: 16px;
max-width: 390px;
background-color: #E9EDF2;
}
.input:focus {
outline: none;
}
.input::-webkit-input-placeholder {
color: #8E99A9;
}
.input::-moz-placeholder {
color: #8E99A9;
}
.input:-ms-input-placeholder {
color: #8E99A9;
}
.input::-ms-input-placeholder {
color: #8E99A9;
}
.input::placeholder {
color: #8E99A9;
}
textarea.input {
resize: none;
max-width: 100%;
height: 152px;
}
.accent-link {
font-size: 2rem;
color: #00D4FF;
text-decoration: underline;
}
.text {
line-height: 32px;
color: #4F5A6A;
}
.text_white {
color: #fff;
}
.title {
font-size: 4rem;
font-weight: 500;
}
.icon-item {
padding: 8px 8px 16px;
}
.icon-item_purple {
background: rgba(248, 251, 253, 0.1);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
}
.icon-circle {
width: 120px;
height: 120px;
background-color: #00D4FF;
border-radius: 50%;
position: relative;
margin-bottom: 1rem;
}
.icon-circle::after {
content: "";
background-size: cover;
width: 120px;
height: 120px;
position: absolute;
top: -20px;
right: -30px;
display: block;
z-index: 999;
}
.icon-circle-3d::after {
top: -10px;
background: url("../img/crypto/3d.svg") 0 0 no-repeat;
}
.icon-circle-meta::after {
background: url("../img/crypto/meta.svg") 0 0 no-repeat;
}
.icon-circle-soft::after {
top: -10px;
background: url("../img/crypto/soft.svg") 0 0 no-repeat;
}
.icon-circle-apps::after {
background: url("../img/crypto/apps.svg") 0 0 no-repeat;
}
.icon-circle-is::after {
background: url("../img/crypto/is.svg") 0 0 no-repeat;
}
.icon-descriptions {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
gap: 48px;
}
.icon-text {
-ms-flex-preferred-size: 49%;
flex-basis: 49%;
font-size: 2rem;
line-height: 44px;
}
.icon-text_white {
color: #fff;
}
.icon-text_blue {
color: #00D4FF;
}
.header {
position: fixed;
width: 100%;
top: 0;
left: 0;
-webkit-transition: background-color 0.3s ease 0s;
-o-transition: background-color 0.3s ease 0s;
transition: background-color 0.3s ease 0s;
z-index: 90;
}
.header._header-scroll {
background-color: rgba(0, 0, 0, 0.5);
}
.header__inner {
padding: 35px 55px;
}
@supports (padding-left: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw ,
3.4375rem )) {
.header__inner {
padding-left: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw , 3.4375rem );
}
}
@supports not (padding-left: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw ,
3.4375rem )) {
.header__inner {
padding-left: calc(2.1875rem + 1.25 * (100vw - 48rem) / 57);
}
}
@supports (padding-right: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw ,
3.4375rem )) {
.header__inner {
padding-right: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw , 3.4375rem );
}
}
@supports not (padding-right: clamp( 2.1875rem , 1.1348684211rem + 2.1929824561vw ,
3.4375rem )) {
.header__inner {
padding-right: calc(2.1875rem + 1.25 * (100vw - 48rem) / 57);
}
}
.menu__body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
.menu__list {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
gap: 24px;
}
.menu__link {
font-size: 0.75rem;
text-transform: uppercase;
color: #fff;
}
.icon-menu {
display: none;
}
.footer {
background-color: #181e28;
padding: 120px 0;
}
.footer__title {
color: #fff;
margin-bottom: 7.5rem;
font-size: 2rem;
}
.footer__bottom {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding-top: 120px;
border-top: 1px solid #4F5A6A;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
gap: 32px;
}
.footer__copy {
color: #fff;
font-size: 1rem;
}
.footer__list {
-webkit-box-flex: 0;
-ms-flex: 0 0 495px;
flex: 0 0 495px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
gap: 32px;
}
.footer__link {
font-size: 1rem;
color: #00D4FF;
}
.more-projects {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-bottom: 7.5rem;
row-gap: 48px;
}
.more-projects__item {
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
gap: 24px;
min-width: 330px;
}
.more-projects__name {
margin-bottom: 1rem;
color: #fff;
}
/* Intro (First block) */
.no-webp .intro{
background: url("../img/intro-bg.png") no-repeat right, -webkit-gradient(linear, left bottom,
left top, from(#01E0FF), to(#006DED)); }
.no-webp .intro{
background: url("../img/intro-bg.png") no-repeat right, -o-linear-gradient(bottom, #01E0FF
0%, #006DED 100%); }
.no-webp .intro{
background: url("../img/intro-bg.png") no-repeat right, linear-gradient(360deg, #01E0FF 0%,
#006DED 100%); }
.intro {
min-height: 550px;
}
.intro__inner {
padding-top: 170px;
padding-bottom: 80px;
padding-left: 60px;
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.intro__inner._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.intro__title {
font-weight: 500;
font-size: 72px;
line-height: 80px;
letter-spacing: -0.02em;
color: #fff;
margin-bottom: 4.0625rem;
max-width: 1140px;
}
.intro__title span {
color: #181e28;
}
.intro__button {
padding: 16px 48px;
display: inline-block;
background-color: #fff;
border-radius: 8px;
-webkit-transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
-o-transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
transition: background-color 0.3s ease 0s, color 0.3s ease 0s;
}
.intro__button:hover {
background-color: #181e28;
color: #fff;
}
/* About (Second block)*/
.about {
padding: 150px 0 20px 0;
margin: -24px 0 280px 0;
border-radius: 24px;
background-color: #fff;
}
.about__title {
font-size: 3rem;
font-weight: 500;
line-height: 60px;
margin-bottom: 3rem;
max-width: 840px;
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.about__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.about__descriptions {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
max-width: 770px;
gap: 32px;
margin-bottom: 7.5rem;
overflow: hidden;
}
.about__slide {
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.about__slide:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.about__slide:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.about__slide:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.about__slide:nth-child(4) {
-webkit-transition: all 0.8s ease 0.6s;
-o-transition: all 0.8s ease 0.6s;
transition: all 0.8s ease 0.6s;
}
.about__slide._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.about__text {
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.about__text:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.about__text:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.about__text._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.about__item {
background-color: #00D4FF;
height: 255px;
width: 100%;
padding: 24px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
border-radius: 8px;
}
.about__feature {
font-size: 1rem;
}
.about__amount {
text-align: center;
font-size: 5rem;
color: #fff;
font-weight: 500;
margin: auto 0;
}
/* Our Principles */
.principles {
margin-bottom: 4rem;
}
.principles__title {
margin-bottom: 5rem;
text-transform: capitalize;
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.principles__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.principles__list {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
gap: 120px 0;
overflow: hidden;
}
.principles__item {
-ms-flex-preferred-size: 50%;
flex-basis: 50%;
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.principles__item:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.principles__item:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.principles__item:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.principles__item:nth-child(4) {
-webkit-transition: all 0.8s ease 0.6s;
-o-transition: all 0.8s ease 0.6s;
transition: all 0.8s ease 0.6s;
}
.principles__item._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.principles__principle {
color: #00D4FF;
font-size: 2.5rem;
font-weight: 500;
margin-bottom: 1rem;
}
/* Team */
.team {
background-color: #f8fbfd;
padding: 64px 0;
}
.team__title {
margin-bottom: 4rem;
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.team__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.team__slide {
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.team__slide:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.team__slide:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.team__slide:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.team__slide._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.team__item {
max-width: 300px;
}
.team__img {
margin-bottom: 1.25rem;
border-radius: 8px;
}
.team__img img {
max-width: 100%;
}
.team__name {
color: #181e28;
font-size: 1.5rem;
font-weight: 500;
text-transform: capitalize;
}
.team__text {
font-size: 1rem;
}
/* Crypto */
.crypto {
padding: 120px 0;
}
.crypto__title {
margin-bottom: 5rem;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.crypto__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.crypto__list {
margin-bottom: 6.25rem;
}
.crypto__slide {
background-color: #f8fbfd;
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.crypto__slide:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.crypto__slide:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.crypto__slide:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.crypto__slide:nth-child(4) {
-webkit-transition: all 0.8s ease 0.6s;
-o-transition: all 0.8s ease 0.6s;
transition: all 0.8s ease 0.6s;
}
.crypto__slide._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.crypto__item {
padding: 8px 8px 16px;
}
.crypto__icon-exchanges::after {
background: url("../img/crypto/exchanges.svg") 0 0 no-repeat;
}
.crypto__icon-market::after {
background: url("../img/crypto/marketplaces.svg") 0 0 no-repeat;
}
.crypto__icon-tokens::after {
background: url("../img/crypto/tokens.svg") 0 0 no-repeat;
}
.crypto__icon-dao::after {
background: url("../img/crypto/dao.svg") 0 0 no-repeat;
}
.crypto__descritions {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
gap: 48px;
}
.crypto__text {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.crypto__text:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.crypto__text:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.crypto__text._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
/* Virtual */
.virtual {
background: -o-radial-gradient(50% 100%, 216.43% 100%, #5200FF 0%, #180660 100%);
background: radial-gradient(216.43% 100% at 50% 100%, #5200FF 0%, #180660 100%);
padding: 120px 0;
}
.virtual__title {
margin-bottom: 5rem;
color: #fff;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.virtual__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.virtual__icon-descriptions {
margin-top: 5rem;
}
.virtual__slide {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.virtual__slide:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.virtual__slide:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.virtual__slide._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.virtual__text {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.virtual__text:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.virtual__text:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.virtual__text._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.virtual .swiper-slide {
-webkit-box-flex: 0;
-ms-flex: 0 1 292px;
flex: 0 1 292px;
min-width: 240px;
}
/* Data */
.data {
padding: 120px 0;
}
.data__title {
margin-bottom: 4rem;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.data__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.data__slide {
background-color: #f8fbfd;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.data__slide:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.data__slide:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.data__slide:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.data__slide._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.data .icon-descriptions {
margin-top: 4rem;
}
.data__text {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.data__text:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.data__text:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.data__text._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
/* Projects */
.projects {
margin-bottom: 4rem;
padding: 120px 0;
background-color: #F8FBFD;
}
.projects__title {
margin-bottom: 5rem;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.projects__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.projects__slider {
position: relative;
}
.projects__slides {
/* Animation on scroll */
opacity: 0;
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.projects__slides._active {
opacity: 1;
}
.projects__item {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
background-color: #E9EDF2;
border-radius: 16px;
height: 435px;
}
.projects__name {
margin-bottom: 0.5rem;
font-size: 2rem;
font-weight: 500;
}
.projects__img {
-ms-flex-preferred-size: 65%;
flex-basis: 65%;
}
.projects__img img {
max-width: 100%;
height: 100%;
width: 100%;
border-radius: 16px;
-o-object-fit: cover;
object-fit: cover;
}
.projects__text {
-ms-flex-preferred-size: 35%;
flex-basis: 35%;
padding: 32px;
}
.projects .swiper-pagination {
/* Animation on scroll */
opacity: 0;
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.projects .swiper-pagination._active {
opacity: 1;
}
.projects__slides {
position: relative;
}
/* Callback */
.callback {
margin-bottom: 4rem;
}
.callback__form {
padding-bottom: 64px;
overflow: hidden;
}
.callback__inner {
border-bottom: 1px solid #E2E7EE;
}
.callback__title {
margin-bottom: 7.5rem;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
@supports (margin-bottom: clamp( 4rem , 1.1086956522rem + 6.0869565217vw , 7.5rem ))
{
.callback__title {
margin-bottom: clamp( 4rem , 1.1086956522rem + 6.0869565217vw , 7.5rem );
}
}
@supports not (margin-bottom: clamp( 4rem , 1.1086956522rem + 6.0869565217vw ,
7.5rem )) {
.callback__title {
margin-bottom: calc(4rem + 3.5 * (100vw - 47.5rem) / 57.5);
}
}
@supports (margin-bottom: clamp( 3rem , 2.1rem + 4vw , 4rem )) {
.callback__title {
margin-bottom: clamp( 3rem , 2.1rem + 4vw , 4rem );
}
}
@supports not (margin-bottom: clamp( 3rem , 2.1rem + 4vw , 4rem )) {
.callback__title {
margin-bottom: calc(3rem + 1 * (100vw - 22.5rem) / 25);
}
}
.callback__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.callback__title span {
color: #00D4FF;
}
.callback input {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
}
.callback input:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.callback input:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.callback input._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.callback textarea {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0.6s;
-o-transition: all 0.8s ease 0.6s;
transition: all 0.8s ease 0.6s;
}
.callback textarea._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.callback button {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0.8s;
-o-transition: all 0.8s ease 0.8s;
transition: all 0.8s ease 0.8s;
}
.callback button._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
/* Contact */
.contact {
margin-bottom: 7.5rem;
}
.contact__title {
margin-bottom: 4rem;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.contact__title._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.contact__subtitle {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateX(-120%);
-ms-transform: translateX(-120%);
transform: translateX(-120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.contact__subtitle._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.contact__data {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
gap: 64px 16px;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-bottom: 7.5rem;
}
.contact__phone {
-ms-flex-preferred-size: 32%;
flex-basis: 32%;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.contact__phone._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.contact__text {
margin-bottom: 1rem;
font-size: 1rem;
}
.contact__mail {
-ms-flex-preferred-size: 32%;
flex-basis: 32%;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.contact__mail._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.contact__location {
-ms-flex-preferred-size: 32%;
flex-basis: 32%;
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.contact__location._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.contact__address {
font-style: normal;
text-decoration: underline;
font-size: 1rem;
line-height: 24px;
}
.contact__subtitle {
font-size: 2rem;
margin-bottom: 3rem;
}
.socials__list {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
gap: 16px;
}
.socials__item {
/* Animation on scroll */
opacity: 0;
-webkit-transform: translateY(120%);
-ms-transform: translateY(120%);
transform: translateY(120%);
}
.socials__item:nth-child(1) {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
}
.socials__item:nth-child(2) {
-webkit-transition: all 0.8s ease 0.2s;
-o-transition: all 0.8s ease 0.2s;
transition: all 0.8s ease 0.2s;
}
.socials__item:nth-child(3) {
-webkit-transition: all 0.8s ease 0.4s;
-o-transition: all 0.8s ease 0.4s;
transition: all 0.8s ease 0.4s;
}
.socials__item:nth-child(4) {
-webkit-transition: all 0.8s ease 0.6s;
-o-transition: all 0.8s ease 0.6s;
transition: all 0.8s ease 0.6s;
}
.socials__item:nth-child(5) {
-webkit-transition: all 0.8s ease 0.8s;
-o-transition: all 0.8s ease 0.8s;
transition: all 0.8s ease 0.8s;
}
.socials__item._active {
opacity: 1;
-webkit-transform: translate(0px, 0px);
-ms-transform: translate(0px, 0px);
transform: translate(0px, 0px);
}
.socials__item:hover {
-webkit-transition: all 0.8s ease 0s;
-o-transition: all 0.8s ease 0s;
transition: all 0.8s ease 0s;
-webkit-transform: translateY(-10px);
-ms-transform: translateY(-10px);
transform: translateY(-10px);
}
@font-face {
font-family: swiper-icons;
src: url("data:application/font-woff;charset=utf-8;base64,
d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAA
AGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAAN
uAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQ
AAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ
2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAA
AHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1h
eHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIA
AACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL
13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzY
NADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOa
awtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4
/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T
9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jE
QA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoA
NAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuAT
gBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4M
JbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpd
nktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45Y
EAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZE
VqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09
An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxP
qH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCi
EiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680
CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tlo
ORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0
cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6R
sYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYO
ABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H
9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42
mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGB
kAIIbCZo5IPrmUn0hGA0AO8EFTQAA");
font-weight: 400;
font-style: normal;
}
:root {
--swiper-theme-color: #00D4FF;
}
.swiper {
margin-left: auto;
margin-right: auto;
position: relative;
overflow: hidden;
list-style: none;
padding: 0;
z-index: 1;
}
.swiper-wrapper {
position: relative;
width: 100%;
height: 100%;
z-index: 1;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
-webkit-box-sizing: content-box;
box-sizing: content-box;
}
.swiper-slide {
-ms-flex-negative: 0;
flex-shrink: 0;
width: 100%;
height: 100%;
position: relative;
-webkit-transition-property: -webkit-transform;
transition-property: -webkit-transform;
-o-transition-property: transform;
transition-property: transform;
transition-property: transform, -webkit-transform;
}
:root {
--swiper-navigation-size: 44px;
}
.swiper-button-next,
.swiper-button-prev {
position: absolute;
top: 50%;
width: calc(var(--swiper-navigation-size) / 44 * 27);
height: var(--swiper-navigation-size);
margin-top: calc(0px - var(--swiper-navigation-size) / 2);
z-index: 10;
cursor: pointer;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
color: var(--swiper-navigation-color, var(--swiper-theme-color));
}
.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
opacity: 0.35;
cursor: auto;
pointer-events: none;
}
.swiper-button-next:after,
.swiper-button-prev:after {
font-family: swiper-icons;
font-size: var(--swiper-navigation-size);
text-transform: none !important;
letter-spacing: 0;
text-transform: none;
font-variant: initial;
line-height: 1;
}
.swiper-button-prev,
.swiper-rtl .swiper-button-next {
left: 10px;
right: auto;
}
.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
content: "prev";
}
.swiper-button-next,
.swiper-rtl .swiper-button-prev {
right: 10px;
left: auto;
}
.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
content: "next";
}
.swiper-pagination {
position: absolute;
text-align: center;
-webkit-transition: 0.3s opacity;
-o-transition: 0.3s opacity;
transition: 0.3s opacity;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
z-index: 10;
width: 100%;
}
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
bottom: -32px;
left: 0;
width: 100%;
}
.swiper-pagination-bullet {
width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 12px));
height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 12px));
display: inline-block;
border-radius: 50%;
background: var(--swiper-pagination-bullet-inactive-color, #E2E7EE);
}
.swiper-pagination-bullet-active {
opacity: var(--swiper-pagination-bullet-opacity, 1);
background: var(--swiper-pagination-color, var(--swiper-theme-color));
-webkit-transform: scale(2);
-ms-transform: scale(2);
transform: scale(2);
-webkit-transition: all 0.3s ease 0s;
-o-transition: all 0.3s ease 0s;
transition: all 0.3s ease 0s;
}
.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 16px);
}
@media (min-width: 475px) {
.principles__item:nth-child(even) {
padding-left: 64px;
}
}
@media (max-width: 90em) {
.intro__inner {
padding-top: 8.125rem;
}
}
@media (max-width: 67.5em) {
.intro__inner {
padding-left: 0;
padding-top: 210px;
}
.intro__title {
font-size: 4rem;
line-height: 72px;
margin-bottom: 2.625rem;
max-width: 715px;
}
.intro {
min-height: 760px;
}
}
@media (max-width: 58.0625em) {
.footer__copy {
-webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.footer__list {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.footer__item {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
}
}
@media (max-width: 55.625em) {
.contact__phone {
-ms-flex-preferred-size: 48%;
flex-basis: 48%;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
}
.contact__mail {
-ms-flex-preferred-size: 48%;
flex-basis: 48%;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
}
.contact__location {
-ms-flex-preferred-size: 48%;
flex-basis: 48%;
-webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
}
}
@media (max-width: 47.99875em) {
fieldset {
margin-bottom: 3rem;
}
.text {
font-size: 1rem;
}
.title {
font-size: 3rem;
}
.icon-circle::after {
width: 105px;
height: 105px;
}
.icon-circle {
width: 105px;
height: 105px;
}
.icon-text {
font-size: 1.5rem;
line-height: 32px;
}
.menu__list {
overflow-y: auto;
position: fixed;
top: 24px;
right: 24px;
padding: 56px 0px 24px 16px;
display: block;
-webkit-transition: all 0.3s ease 0s;
-o-transition: all 0.3s ease 0s;
transition: all 0.3s ease 0s;
background-color: #fff;
border-radius: 8px;
opacity: 0;
visibility: hidden;
max-width: 300px;
width: 100%;
}
.menu-open .menu__list {
opacity: 1;
visibility: visible;
}
.menu__item {
padding: 16px 0;
}
.menu__item:not(.menu__item:last-child) {
border-bottom: 1px solid #E2E7EE;
}
.menu__link {
text-transform: none;
font-size: 1.25rem;
color: #181E28;
}
.icon-menu {
display: block;
position: relative;
width: 1rem;
height: 1rem;
cursor: pointer;
z-index: 5;
}
.icon-menu span,
.icon-menu::before,
.icon-menu::after {
content: "";
-webkit-transition: all 0.3s ease 0s;
-o-transition: all 0.3s ease 0s;
transition: all 0.3s ease 0s;
right: 0;
position: absolute;
width: 100%;
height: 0.09375rem;
background-color: #fff;
}
.icon-menu::before {
top: 0;
}
.icon-menu::after {
bottom: 0;
}
.icon-menu span {
top: calc(50% - 0.0625rem);
}
.menu-open .icon-menu span,
.menu-open .icon-menu::before,
.menu-open .icon-menu::after {
background-color: #333;
}
.menu-open .icon-menu span {
width: 0;
}
.menu-open .icon-menu::before {
top: calc(50% - 0.0625rem);
-webkit-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.menu-open .icon-menu::after {
bottom: calc(50% - 0.0625rem);
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.footer {
padding: 64px 0;
}
.footer__title {
margin-bottom: 4rem;
}
.footer__bottom {
padding-top: 64px;
}
.more-projects {
margin-bottom: 4rem;
}
.intro__inner {
padding-top: 200px;
}
.intro__title {
font-size: 3rem;
line-height: 56px;
max-width: 552px;
}
.about__title {
max-width: 100%;
font-size: 1.5rem;
line-height: 32px;
}
.about__descriptions {
margin-bottom: 4rem;
}
.about {
padding-top: 64px;
}
.principles__principle {
font-size: 1.5rem;
margin-bottom: 1rem;
}
.team__name {
font-size: 1.25rem;
}
.team__text {
font-size: 0.9375rem;
}
.crypto {
padding: 64px 0;
}
.virtual {
padding: 64px 0;
}
.data {
padding: 64px 0;
}
.data__title {
margin-bottom: 3rem;
}
.data .icon-descriptions {
margin-top: 3rem;
}
.projects {
padding: 64px 0;
margin-bottom: 3rem;
}
.callback__form {
padding-bottom: 48px;
margin-bottom: 3rem;
}
.contact {
margin-bottom: 4rem;
}
.contact__title {
margin-bottom: 3rem;
}
.contact__data {
row-gap: 48px;
margin-bottom: 4rem;
}
}
@media (max-width: 47.5em) {
.callback__title {
margin-bottom: inherit;
}
}
@media (max-width: 40.625em) {
.projects__item {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
min-height: 460px;
height: auto;
}
.projects__img {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
}
.projects__text {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
}
}
@media (max-width: 29.99875em) {
.icon-descriptions {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.icon-text {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
}
.footer__title {
margin-bottom: 3rem;
}
.footer__bottom {
padding-top: 48px;
}
.more-projects {
margin-bottom: 3rem;
}
.intro {
min-height: 560px;
}
.about__descriptions {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
margin-bottom: 48px;
}
.principles__list {
gap: 48px 0;
}
.principles__item {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
}
.crypto__descritions {
-ms-flex-wrap: wrap;
flex-wrap: wrap;
}
.projects .swiper-pagination {
display: none;
}
.contact {
margin-bottom: 3rem;
}
}
@media (max-width: 23.4375em) {
.intro__title {
font-size: 2rem;
line-height: 40px;
max-width: 330px;
}
}
@media (max-width: 22.5em) {
.intro__inner {
padding-top: 170px;
}
}
.webp .intro{ background: url(../img/intro-bg.webp) no-repeat right, -webkit-gradient(linear,
left bottom, left top, from(#01E0FF), to(#006DED)); }
.webp .intro{ background: url(../img/intro-bg.webp) no-repeat right, -o-linear-
gradient(bottom, #01E0FF 0%, #006DED 100%); }
.webp .intro{ background: url(../img/intro-bg.webp) no-repeat right, linear-gradient(360deg,
#01E0FF 0%, #006DED 100%); }
style.min.css
@charset "UTF-8";@import
url(https://fonts.googleapis.com/css?family=Poppins:regular,500&display=swap);*{padding:
0;margin:0;border:0}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-
box}body,html{height:100%;min-width:320px}body{color:#181e28;line-height:1;font-
family:Poppins;font-size:1.25rem;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-
webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-
smoothing:grayscale}button,input,textarea{font-family:Poppins;font-
size:inherit}button{cursor:pointer;color:inherit;background-
color:inherit}a{color:inherit}a:link:not(.accent-link),a:visited:not(.accent-link){text-
decoration:none}a:hover{text-decoration:none}ul li{list-style:none}img{vertical-
align:top}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:inherit}.lock
body{overflow:hidden;-ms-touch-action:none;touch-action:none}.wrapper{min-
height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-
orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-
direction:column;overflow:hidden}.wrapper>main{-webkit-box-flex:1;-ms-flex:1 1
auto;flex:1 1 auto}.wrapper>*{min-width:0}[class*=__container]{max-width:75rem;-webkit-
box-sizing:content-box;box-sizing:content-box;margin:0
auto;padding:0 .9375rem}fieldset{display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-
direction:column;gap:16px;margin-bottom:4rem}.button{display:-webkit-inline-box;display:-
ms-inline-flexbox;display:inline-flex;padding:0
0}.button._fw{width:100%}form .button{color:#fff;display:inline-block;background-
color:#0075ff;border-radius:8px;padding:16px 48px;text-
align:center}input[type=email],input[type=tel],input[type=text],textarea{-webkit-
appearance:none;-moz-appearance:none;appearance:none}.input{border-
radius:8px;width:100%;display:block;padding:16px;max-width:390px;background-
color:#e9edf2}.input:focus{outline:0}.input::-webkit-input-
placeholder{color:#8e99a9}.input::-moz-placeholder{color:#8e99a9}.input:-ms-input-
placeholder{color:#8e99a9}.input::-ms-input-
placeholder{color:#8e99a9}.input::placeholder{color:#8e99a9}textarea.input{resize:none;m
ax-width:100%;height:152px}.accent-link{font-size:2rem;color:#00d4ff;text-
decoration:underline}.text{line-height:32px;color:#4f5a6a}.text_white{color:#fff}.title{font-
size:4rem;font-weight:500}.icon-item{padding:8px 8px 16px}.icon-
item_purple{background:rgba(248,251,253,.1);border:1px solid
rgba(255,255,255,.1);border-radius:8px}.icon-circle{width:120px;height:120px;background-
color:#00d4ff;border-radius:50%;position:relative;margin-bottom:1rem}.icon-
circle::after{content:"";background-
size:cover;width:120px;height:120px;position:absolute;top:-20px;right:-30px;display:block;z-
index:999}.icon-circle-3d::after{top:-10px;background:url(../img/crypto/3d.svg) 0 0 no-
repeat}.icon-circle-meta::after{background:url(../img/crypto/meta.svg) 0 0 no-repeat}.icon-
circle-soft::after{top:-10px;background:url(../img/crypto/soft.svg) 0 0 no-repeat}.icon-circle-
apps::after{background:url(../img/crypto/apps.svg) 0 0 no-repeat}.icon-circle-
is::after{background:url(../img/crypto/is.svg) 0 0 no-repeat}.icon-descriptions{display:-
webkit-box;display:-ms-flexbox;display:flex;gap:48px}.icon-text{-ms-flex-preferred-
size:49%;flex-basis:49%;font-size:2rem;line-height:44px}.icon-text_white{color:#fff}.icon-
text_blue{color:#00d4ff}.header{position:fixed;width:100%;top:0;left:0;-webkit-
transition:background-color .3s ease 0s;-o-transition:background-color .3s ease
0s;transition:background-color .3s ease 0s;z-index:90}.header._header-scroll{background-
color:rgba(0,0,0,.5)}.header__inner{padding:35px 55px}@supports (padding-
left:clamp(2.1875rem ,1.1348684211rem +
2.1929824561vw ,3.4375rem)){.header__inner{padding-
left:clamp(2.1875rem ,1.1348684211rem + 2.1929824561vw ,3.4375rem)}}@supports not
(padding-left:clamp(2.1875rem ,1.1348684211rem +
2.1929824561vw ,3.4375rem)){.header__inner{padding-left:calc(2.1875rem + 1.25 * (100vw
- 48rem)/ 57)}}@supports (padding-right:clamp(2.1875rem ,1.1348684211rem +
2.1929824561vw ,3.4375rem)){.header__inner{padding-
right:clamp(2.1875rem ,1.1348684211rem + 2.1929824561vw ,3.4375rem)}}@supports not
(padding-right:clamp(2.1875rem ,1.1348684211rem +
2.1929824561vw ,3.4375rem)){.header__inner{padding-right:calc(2.1875rem + 1.25 *
(100vw - 48rem)/ 57)}}.menu__body{display:-webkit-box;display:-ms-flexbox;display:flex;-
webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-
ms-flex-pack:justify;justify-content:space-between}.menu__list{display:-webkit-box;display:-
ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-
items:center;gap:24px}.menu__link{font-size:.75rem;text-
transform:uppercase;color:#fff}.icon-menu{display:none}.footer{background-
color:#181e28;padding:120px 0}.footer__title{color:#fff;margin-bottom:7.5rem;font-
size:2rem}.footer__bottom{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-
pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-top:120px;border-
top:1px solid #4f5a6a;-ms-flex-wrap:wrap;flex-
wrap:wrap;gap:32px}.footer__copy{color:#fff;font-size:1rem}.footer__list{-webkit-box-
flex:0;-ms-flex:0 0 495px;flex:0 0 495px;display:-webkit-box;display:-ms-
flexbox;display:flex;gap:32px}.footer__link{font-size:1rem;color:#00d4ff}.more-
projects{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-
wrap:wrap;margin-bottom:7.5rem;row-gap:48px}.more-projects__item{-ms-flex-preferred-
size:50%;flex-basis:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-
align:center;-ms-flex-align:center;align-items:center;gap:24px;min-width:330px}.more-
projects__name{margin-bottom:1rem;color:#fff}.no-
webp .intro{background:url(../img/intro-bg.png) no-repeat right,-webkit-gradient(linear,left
bottom,left top,from(#01e0ff),to(#006ded))}.no-webp .intro{background:url(../img/intro-
bg.png) no-repeat right,-o-linear-gradient(bottom,#01e0ff 0,#006ded 100%)}.no-
webp .intro{background:url(../img/intro-bg.png) no-repeat right,linear-
gradient(360deg,#01e0ff 0,#006ded 100%)}.intro{min-height:550px}.intro__inner{padding-
top:170px;padding-bottom:80px;padding-left:60px;opacity:0;-webkit-transform:translateX(-
120%);-ms-transform:translateX(-120%);transform:translateX(-120%);-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.intro__inner._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.intro__title{font-weight:500;font-
size:72px;line-height:80px;letter-spacing:-.02em;color:#fff;margin-bottom:4.0625rem;max-
width:1140px}.intro__title span{color:#181e28}.intro__button{padding:16px
48px;display:inline-block;background-color:#fff;border-radius:8px;-webkit-
transition:background-color .3s ease 0s,color .3s ease 0s;-o-transition:background-color .3s
ease 0s,color .3s ease 0s;transition:background-color .3s ease 0s,color .3s ease
0s}.intro__button:hover{background-color:#181e28;color:#fff}.about{padding:150px 0 20px
0;margin:-24px 0 280px 0;border-radius:24px;background-color:#fff}.about__title{font-
size:3rem;font-weight:500;line-height:60px;margin-bottom:3rem;max-
width:840px;opacity:0;-webkit-transform:translateX(-120%);-ms-transform:translateX(-
120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-o-transition:all .8s
ease 0s;transition:all .8s ease 0s}.about__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.about__descriptions{display:-webkit-
box;display:-ms-flexbox;display:flex;max-width:770px;gap:32px;margin-
bottom:7.5rem;overflow:hidden}.about__slide{opacity:0;-webkit-
transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.about__slide:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.about__slide:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.about__slide:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s ease .4s}.about__slide:nth-child(4){-
webkit-transition:all .8s ease .6s;-o-transition:all .8s ease .6s;transition:all .8s
ease .6s}.about__slide._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.about__text{opacity:0;-webkit-
transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.about__text:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.about__text:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.about__text._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.about__item{background-
color:#00d4ff;height:255px;width:100%;padding:24px;display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-
direction:column;flex-direction:column;border-radius:8px}.about__feature{font-
size:1rem}.about__amount{text-align:center;font-size:5rem;color:#fff;font-
weight:500;margin:auto 0}.principles{margin-bottom:4rem}.principles__title{margin-
bottom:5rem;text-transform:capitalize;opacity:0;-webkit-transform:translateX(-120%);-ms-
transform:translateX(-120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-
o-transition:all .8s ease 0s;transition:all .8s ease 0s}.principles__title._active{opacity:1;-
webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.principles__list{display:-webkit-
box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-
pack:center;-ms-flex-pack:center;justify-content:center;gap:120px
0;overflow:hidden}.principles__item{-ms-flex-preferred-size:50%;flex-basis:50%;opacity:0;-
webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.principles__item:nth-child(1){-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.principles__item:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.principles__item:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s ease .4s}.principles__item:nth-
child(4){-webkit-transition:all .8s ease .6s;-o-transition:all .8s ease .6s;transition:all .8s
ease .6s}.principles__item._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.principles__principle{color:#00d4ff;font-
size:2.5rem;font-weight:500;margin-bottom:1rem}.team{background-
color:#f8fbfd;padding:64px 0}.team__title{margin-bottom:4rem;opacity:0;-webkit-
transform:translateX(-120%);-ms-transform:translateX(-120%);transform:translateX(-120%);-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.team__title._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.team__slide{opacity:0;-webkit-
transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.team__slide:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.team__slide:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.team__slide:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s
ease .4s}.team__slide._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.team__item{max-
width:300px}.team__img{margin-bottom:1.25rem;border-radius:8px}.team__img img{max-
width:100%}.team__name{color:#181e28;font-size:1.5rem;font-weight:500;text-
transform:capitalize}.team__text{font-size:1rem}.crypto{padding:120px
0}.crypto__title{margin-bottom:5rem;opacity:0;-webkit-transform:translateX(-120%);-ms-
transform:translateX(-120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-
o-transition:all .8s ease 0s;transition:all .8s ease 0s}.crypto__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.crypto__list{margin-
bottom:6.25rem}.crypto__slide{background-color:#f8fbfd;opacity:0;-webkit-
transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.crypto__slide:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.crypto__slide:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.crypto__slide:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s ease .4s}.crypto__slide:nth-child(4){-
webkit-transition:all .8s ease .6s;-o-transition:all .8s ease .6s;transition:all .8s
ease .6s}.crypto__slide._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.crypto__item{padding:8px 8px
16px}.crypto__icon-exchanges::after{background:url(../img/crypto/exchanges.svg) 0 0 no-
repeat}.crypto__icon-market::after{background:url(../img/crypto/marketplaces.svg) 0 0 no-
repeat}.crypto__icon-tokens::after{background:url(../img/crypto/tokens.svg) 0 0 no-
repeat}.crypto__icon-dao::after{background:url(../img/crypto/dao.svg) 0 0 no-
repeat}.crypto__descritions{display:-webkit-box;display:-ms-
flexbox;display:flex;gap:48px}.crypto__text{opacity:0;-webkit-transform:translateY(120%);-
ms-transform:translateY(120%);transform:translateY(120%)}.crypto__text:nth-child(1){-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.crypto__text:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.crypto__text._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.virtual{background:-o-radial-gradient(50%
100%,216.43% 100%,#5200ff 0,#180660 100%);background:radial-gradient(216.43% 100%
at 50% 100%,#5200ff 0,#180660 100%);padding:120px 0}.virtual__title{margin-
bottom:5rem;color:#fff;opacity:0;-webkit-transform:translateX(-120%);-ms-
transform:translateX(-120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-
o-transition:all .8s ease 0s;transition:all .8s ease 0s}.virtual__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.virtual__icon-descriptions{margin-
top:5rem}.virtual__slide{opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.virtual__slide:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.virtual__slide:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.virtual__slide._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.virtual__text{opacity:0;-webkit-
transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.virtual__text:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.virtual__text:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.virtual__text._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.virtual .swiper-slide{-webkit-box-flex:0;-
ms-flex:0 1 292px;flex:0 1 292px;min-width:240px}.data{padding:120px
0}.data__title{margin-bottom:4rem;opacity:0;-webkit-transform:translateX(-120%);-ms-
transform:translateX(-120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-
o-transition:all .8s ease 0s;transition:all .8s ease 0s}.data__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.data__slide{background-
color:#f8fbfd;opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.data__slide:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.data__slide:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.data__slide:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s
ease .4s}.data__slide._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.data .icon-descriptions{margin-
top:4rem}.data__text{opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.data__text:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.data__text:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.data__text._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.projects{margin-
bottom:4rem;padding:120px 0;background-color:#f8fbfd}.projects__title{margin-
bottom:5rem;opacity:0;-webkit-transform:translateX(-120%);-ms-transform:translateX(-
120%);transform:translateX(-120%);-webkit-transition:all .8s ease 0s;-o-transition:all .8s
ease 0s;transition:all .8s ease 0s}.projects__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.projects__slider{position:relative}.project
s__slides{opacity:0;-webkit-transition:all .8s ease 0s;-o-transition:all .8s ease
0s;transition:all .8s ease 0s}.projects__slides._active{opacity:1}.projects__item{display:-
webkit-box;display:-ms-flexbox;display:flex;background-color:#e9edf2;border-
radius:16px;height:435px}.projects__name{margin-bottom:.5rem;font-size:2rem;font-
weight:500}.projects__img{-ms-flex-preferred-size:65%;flex-basis:65%}.projects__img
img{max-width:100%;height:100%;width:100%;border-radius:16px;-o-object-
fit:cover;object-fit:cover}.projects__text{-ms-flex-preferred-size:35%;flex-
basis:35%;padding:32px}.projects .swiper-pagination{opacity:0;-webkit-transition:all .8s
ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease 0s}.projects .swiper-
pagination._active{opacity:1}.projects__slides{position:relative}.callback{margin-
bottom:4rem}.callback__form{padding-
bottom:64px;overflow:hidden}.callback__inner{border-bottom:1px solid
#e2e7ee}.callback__title{margin-bottom:7.5rem;opacity:0;-webkit-transform:translateX(-
120%);-ms-transform:translateX(-120%);transform:translateX(-120%);-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease 0s}@supports
(margin-bottom:clamp(4rem ,1.1086956522rem +
6.0869565217vw ,7.5rem)){.callback__title{margin-bottom:clamp(4rem ,1.1086956522rem
+ 6.0869565217vw ,7.5rem)}}@supports not (margin-
bottom:clamp(4rem ,1.1086956522rem +
6.0869565217vw ,7.5rem)){.callback__title{margin-bottom:calc(4rem + 3.5 * (100vw -
47.5rem)/ 57.5)}}@supports (margin-bottom:clamp(3rem ,2.1rem +
4vw ,4rem)){.callback__title{margin-bottom:clamp(3rem ,2.1rem + 4vw ,4rem)}}@supports
not (margin-bottom:clamp(3rem ,2.1rem + 4vw ,4rem)){.callback__title{margin-
bottom:calc(3rem + 1 * (100vw - 22.5rem)/ 25)}}.callback__title._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.callback__title
span{color:#00d4ff}.callback input{opacity:0;-webkit-transform:translateX(-120%);-ms-
transform:translateX(-120%);transform:translateX(-120%)}.callback input:nth-child(1){-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease 0s}.callback
input:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.callback input._active{opacity:1;-webkit-
transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.callback
textarea{opacity:0;-webkit-transform:translateX(-120%);-ms-transform:translateX(-
120%);transform:translateX(-120%);-webkit-transition:all .8s ease .6s;-o-transition:all .8s
ease .6s;transition:all .8s ease .6s}.callback textarea._active{opacity:1;-webkit-
transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.callback
button{opacity:0;-webkit-transform:translateX(-120%);-ms-transform:translateX(-
120%);transform:translateX(-120%);-webkit-transition:all .8s ease .8s;-o-transition:all .8s
ease .8s;transition:all .8s ease .8s}.callback button._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact{margin-
bottom:7.5rem}.contact__title{margin-bottom:4rem;opacity:0;-webkit-
transform:translateX(-120%);-ms-transform:translateX(-120%);transform:translateX(-120%);-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.contact__title._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact__subtitle{opacity:0;-webkit-
transform:translateX(-120%);-ms-transform:translateX(-120%);transform:translateX(-120%);-
webkit-transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.contact__subtitle._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact__data{display:-webkit-
box;display:-ms-flexbox;display:flex;gap:64px 16px;-ms-flex-wrap:wrap;flex-
wrap:wrap;margin-bottom:7.5rem}.contact__phone{-ms-flex-preferred-size:32%;flex-
basis:32%;opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%);-webkit-transition:all .8s ease 0s;-o-
transition:all .8s ease 0s;transition:all .8s ease 0s}.contact__phone._active{opacity:1;-
webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact__text{margin-bottom:1rem;font-
size:1rem}.contact__mail{-ms-flex-preferred-size:32%;flex-basis:32%;opacity:0;-webkit-
transform:translateY(120%);-ms-transform:translateY(120%);transform:translateY(120%);-
webkit-transition:all .8s ease .2s;-o-transition:all .8s ease .2s;transition:all .8s
ease .2s}.contact__mail._active{opacity:1;-webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact__location{-ms-flex-preferred-
size:32%;flex-basis:32%;opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%);-webkit-transition:all .8s ease .4s;-
o-transition:all .8s ease .4s;transition:all .8s ease .4s}.contact__location._active{opacity:1;-
webkit-transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.contact__address{font-style:normal;text-
decoration:underline;font-size:1rem;line-height:24px}.contact__subtitle{font-
size:2rem;margin-bottom:3rem}.socials__list{display:-webkit-box;display:-ms-
flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-
items:center;gap:16px}.socials__item{opacity:0;-webkit-transform:translateY(120%);-ms-
transform:translateY(120%);transform:translateY(120%)}.socials__item:nth-child(1){-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease
0s}.socials__item:nth-child(2){-webkit-transition:all .8s ease .2s;-o-transition:all .8s
ease .2s;transition:all .8s ease .2s}.socials__item:nth-child(3){-webkit-transition:all .8s
ease .4s;-o-transition:all .8s ease .4s;transition:all .8s ease .4s}.socials__item:nth-child(4){-
webkit-transition:all .8s ease .6s;-o-transition:all .8s ease .6s;transition:all .8s
ease .6s}.socials__item:nth-child(5){-webkit-transition:all .8s ease .8s;-o-transition:all .8s
ease .8s;transition:all .8s ease .8s}.socials__item._active{opacity:1;-webkit-
transform:translate(0,0);-ms-
transform:translate(0,0);transform:translate(0,0)}.socials__item:hover{-webkit-
transition:all .8s ease 0s;-o-transition:all .8s ease 0s;transition:all .8s ease 0s;-webkit-
transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-
10px)}@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-
8;base64,
d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAA
AGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAAN
uAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQ
AAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ
2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAA
AHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1h
eHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIA
AACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL
13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzY
NADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOa
awtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4
/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T
9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jE
QA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoA
NAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuAT
gBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4M
JbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpd
nktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45Y
EAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZE
VqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09
An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxP
qH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCi
EiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680
CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tlo
ORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0
cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6R
sYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYO
ABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H
9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42
mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGB
kAIIbCZo5IPrmUn0hGA0AO8EFTQAA");font-weight:400;font-style:normal}:root{--swiper-
theme-color:#00D4FF}.swiper{margin-left:auto;margin-
right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-
wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-
ms-flexbox;display:flex;-webkit-transition-property:-webkit-transform;transition-property:-
webkit-transform;-o-transition-property:transform;transition-property:transform;transition-
property:transform,-webkit-transform;-webkit-box-sizing:content-box;box-sizing:content-
box}.swiper-slide{-ms-flex-negative:0;flex-
shrink:0;width:100%;height:100%;position:relative;-webkit-transition-property:-webkit-
transform;transition-property:-webkit-transform;-o-transition-
property:transform;transition-property:transform;transition-property:transform,-webkit-
transform}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-
prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 *
27);height:var(--swiper-navigation-size);margin-top:calc(0px - var(--swiper-navigation-size)/
2);z-index:10;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-
box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-
pack:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-
color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-
disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-
button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-
transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-
height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-
button-prev:after,.swiper-rtl .swiper-button-next:after{content:"prev"}.swiper-button-
next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-
rtl .swiper-button-prev:after{content:"next"}.swiper-pagination{position:absolute;text-
align:center;-webkit-transition:.3s opacity;-o-transition:.3s opacity;transition:.3s opacity;-
webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-
index:10;width:100%}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-
horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-
horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:-
32px;left:0;width:100%}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-
width,var(--swiper-pagination-bullet-size,12px));height:var(--swiper-pagination-bullet-
height,var(--swiper-pagination-bullet-size,12px));display:inline-block;border-
radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#e2e7ee)}.swiper-
pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity,1);background:var(--
swiper-pagination-color,var(--swiper-theme-color));-webkit-transform:scale(2);-ms-
transform:scale(2);transform:scale(2);-webkit-transition:all .3s ease 0s;-o-transition:all .3s
ease 0s;transition:all .3s ease 0s}.swiper-horizontal>.swiper-pagination-bullets .swiper-
pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-
pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,16px)}@media
(min-width:475px){.principles__item:nth-child(even){padding-left:64px}}@media (max-
width:90em){.intro__inner{padding-top:8.125rem}}@media (max-
width:67.5em){.intro__inner{padding-left:0;padding-top:210px}.intro__title{font-
size:4rem;line-height:72px;margin-bottom:2.625rem;max-width:715px}.intro{min-
height:760px}}@media (max-width:58.0625em){.footer__copy{-webkit-box-ordinal-
group:3;-ms-flex-order:2;order:2}.footer__list{-ms-flex-wrap:wrap;flex-
wrap:wrap}.footer__item{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-
width:55.625em){.contact__phone{-ms-flex-preferred-size:48%;flex-basis:48%;-webkit-box-
flex:1;-ms-flex-positive:1;flex-grow:1}.contact__mail{-ms-flex-preferred-size:48%;flex-
basis:48%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.contact__location{-ms-flex-
preferred-size:48%;flex-basis:48%;-webkit-box-flex:1;-ms-flex-positive:1;flex-
grow:1}}@media (max-width:47.99875em){fieldset{margin-bottom:3rem}.text{font-
size:1rem}.title{font-size:3rem}.icon-circle::after{width:105px;height:105px}.icon-
circle{width:105px;height:105px}.icon-text{font-size:1.5rem;line-
height:32px}.menu__list{overflow-y:auto;position:fixed;top:24px;right:24px;padding:56px 0
24px 16px;display:block;-webkit-transition:all .3s ease 0s;-o-transition:all .3s ease
0s;transition:all .3s ease 0s;background-color:#fff;border-
radius:8px;opacity:0;visibility:hidden;max-width:300px;width:100%}.menu-
open .menu__list{opacity:1;visibility:visible}.menu__item{padding:16px
0}.menu__item:not(.menu__item:last-child){border-bottom:1px solid
#e2e7ee}.menu__link{text-transform:none;font-size:1.25rem;color:#181e28}.icon-
menu{display:block;position:relative;width:1rem;height:1rem;cursor:pointer;z-index:5}.icon-
menu span,.icon-menu::after,.icon-menu::before{content:"";-webkit-transition:all .3s ease
0s;-o-transition:all .3s ease 0s;transition:all .3s ease
0s;right:0;position:absolute;width:100%;height:.09375rem;background-color:#fff}.icon-
menu::before{top:0}.icon-menu::after{bottom:0}.icon-menu span{top:calc(50% -
.0625rem)}.menu-open .icon-menu span,.menu-open .icon-menu::after,.menu-open .icon-
menu::before{background-color:#333}.menu-open .icon-menu span{width:0}.menu-
open .icon-menu::before{top:calc(50% - .0625rem);-webkit-transform:rotate(-45deg);-ms-
transform:rotate(-45deg);transform:rotate(-45deg)}.menu-open .icon-
menu::after{bottom:calc(50% - .0625rem);-webkit-transform:rotate(45deg);-ms-
transform:rotate(45deg);transform:rotate(45deg)}.footer{padding:64px
0}.footer__title{margin-bottom:4rem}.footer__bottom{padding-top:64px}.more-
projects{margin-bottom:4rem}.intro__inner{padding-top:200px}.intro__title{font-
size:3rem;line-height:56px;max-width:552px}.about__title{max-width:100%;font-
size:1.5rem;line-height:32px}.about__descriptions{margin-bottom:4rem}.about{padding-
top:64px}.principles__principle{font-size:1.5rem;margin-bottom:1rem}.team__name{font-
size:1.25rem}.team__text{font-size:.9375rem}.crypto{padding:64px 0}.virtual{padding:64px
0}.data{padding:64px 0}.data__title{margin-bottom:3rem}.data .icon-descriptions{margin-
top:3rem}.projects{padding:64px 0;margin-bottom:3rem}.callback__form{padding-
bottom:48px;margin-bottom:3rem}.contact{margin-bottom:4rem}.contact__title{margin-
bottom:3rem}.contact__data{row-gap:48px;margin-bottom:4rem}}@media (max-
width:47.5em){.callback__title{margin-bottom:inherit}}@media (max-
width:40.625em){.projects__item{-ms-flex-wrap:wrap;flex-wrap:wrap;min-
height:460px;height:auto}.projects__img{-ms-flex-preferred-size:100%;flex-
basis:100%}.projects__text{-ms-flex-preferred-size:100%;flex-basis:100%}}@media (max-
width:29.99875em){.icon-descriptions{-ms-flex-wrap:wrap;flex-wrap:wrap}.icon-text{-ms-
flex-preferred-size:100%;flex-basis:100%}.footer__title{margin-
bottom:3rem}.footer__bottom{padding-top:48px}.more-projects{margin-
bottom:3rem}.intro{min-height:560px}.about__descriptions{-ms-flex-wrap:wrap;flex-
wrap:wrap;margin-bottom:48px}.principles__list{gap:48px 0}.principles__item{-ms-flex-
preferred-size:100%;flex-basis:100%}.crypto__descritions{-ms-flex-wrap:wrap;flex-
wrap:wrap}.projects .swiper-pagination{display:none}.contact{margin-
bottom:3rem}}@media (max-width:23.4375em){.intro__title{font-size:2rem;line-
height:40px;max-width:330px}}@media (max-width:22.5em){.intro__inner{padding-
top:170px}}.webp .intro{background:url(../img/intro-bg.webp) no-repeat right,-webkit-
gradient(linear,left bottom,left
top,from(#01e0ff),to(#006ded))}.webp .intro{background:url(../img/intro-bg.webp) no-
repeat right,-o-linear-gradient(bottom,#01e0ff 0,#006ded
100%)}.webp .intro{background:url(../img/intro-bg.webp) no-repeat right,linear-
gradient(360deg,#01e0ff 0,#006ded 100%)}
app.js
(() => {
"use strict";
function isWebp() {
function testWebP(callback) {
let webP = new Image;
webP.onload = webP.onerror = function() {
callback(2 == webP.height);
};
webP.src =
"data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIg
BoSygABc6WWgAA/veff/0PP8bA//LwYAAA";
}
testWebP((function(support) {
let className = true === support ? "webp" : "no-webp";
document.documentElement.classList.add(className);
}));
}
let isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
any: function() {
return isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() ||
isMobile.Opera() || isMobile.Windows();
}
};
function addTouchClass() {
if (isMobile.any()) document.documentElement.classList.add("touch");
}
function getHash() {
if (location.hash) return location.hash.replace("#", "");
}
let bodyLockStatus = true;
let bodyLockToggle = (delay = 500) => {
if (document.documentElement.classList.contains("lock")) bodyUnlock(delay); else
bodyLock(delay);
};
let bodyUnlock = (delay = 500) => {
let body = document.querySelector("body");
if (bodyLockStatus) {
let lock_padding = document.querySelectorAll("[data-lp]");
setTimeout((() => {
for (let index = 0; index < lock_padding.length; index++) {
const el = lock_padding[index];
el.style.paddingRight = "0px";
}
body.style.paddingRight = "0px";
document.documentElement.classList.remove("lock");
}), delay);
bodyLockStatus = false;
setTimeout((function() {
bodyLockStatus = true;
}), delay);
}
};
let bodyLock = (delay = 500) => {
let body = document.querySelector("body");
if (bodyLockStatus) {
let lock_padding = document.querySelectorAll("[data-lp]");
for (let index = 0; index < lock_padding.length; index++) {
const el = lock_padding[index];
el.style.paddingRight = window.innerWidth -
document.querySelector(".wrapper").offsetWidth + "px";
}
body.style.paddingRight = window.innerWidth -
document.querySelector(".wrapper").offsetWidth + "px";
document.documentElement.classList.add("lock");
bodyLockStatus = false;
setTimeout((function() {
bodyLockStatus = true;
}), delay);
}
};
function menuInit() {
if (document.querySelector(".icon-menu")) document.addEventListener("click",
(function(e) {
if (bodyLockStatus && e.target.closest(".icon-menu")) {
bodyLockToggle();
document.documentElement.classList.toggle("menu-open");
}
}));
}
function menuClose() {
bodyUnlock();
document.documentElement.classList.remove("menu-open");
}
function functions_FLS(message) {
setTimeout((() => {
if (window.FLS) console.log(message);
}), 0);
}
let gotoblock_gotoBlock = (targetBlock, noHeader = false, speed = 500, offsetTop = 0) => {
const targetBlockElement = document.querySelector(targetBlock);
if (targetBlockElement) {
let headerItem = "";
let headerItemHeight = 0;
if (noHeader) {
headerItem = "header.header";
headerItemHeight = document.querySelector(headerItem).offsetHeight;
}
let options = {
speedAsDuration: true,
speed,
header: headerItem,
offset: offsetTop,
easing: "easeOutQuad"
};
document.documentElement.classList.contains("menu-open") ? menuClose() : null;
if ("undefined" !== typeof SmoothScroll) (new
SmoothScroll).animateScroll(targetBlockElement, "", options); else {
let targetBlockElementPosition = targetBlockElement.getBoundingClientRect().top +
scrollY;
targetBlockElementPosition = headerItemHeight ? targetBlockElementPosition -
headerItemHeight : targetBlockElementPosition;
targetBlockElementPosition = offsetTop ? targetBlockElementPosition - offsetTop :
targetBlockElementPosition;
window.scrollTo({
top: targetBlockElementPosition,
behavior: "smooth"
});
}
functions_FLS(`[gotoBlock]: Юхуу...едем к ${targetBlock}`);
} else functions_FLS(`[gotoBlock]: Ой ой..Такого блока нет на странице:
${targetBlock}`);
};
function ssr_window_esm_isObject(obj) {
return null !== obj && "object" === typeof obj && "constructor" in obj &&
obj.constructor === Object;
}
function extend(target = {}, src = {}) {
Object.keys(src).forEach((key => {
if ("undefined" === typeof target[key]) target[key] = src[key]; else if
(ssr_window_esm_isObject(src[key]) && ssr_window_esm_isObject(target[key]) &&
Object.keys(src[key]).length > 0) extend(target[key], src[key]);
}));
}
const ssrDocument = {
body: {},
addEventListener() {},
removeEventListener() {},
activeElement: {
blur() {},
nodeName: ""
},
querySelector() {
return null;
},
querySelectorAll() {
return [];
},
getElementById() {
return null;
},
createEvent() {
return {
initEvent() {}
};
},
createElement() {
return {
children: [],
childNodes: [],
style: {},
setAttribute() {},
getElementsByTagName() {
return [];
}
};
},
createElementNS() {
return {};
},
importNode() {
return null;
},
location: {
hash: "",
host: "",
hostname: "",
href: "",
origin: "",
pathname: "",
protocol: "",
search: ""
}
};
function ssr_window_esm_getDocument() {
const doc = "undefined" !== typeof document ? document : {};
extend(doc, ssrDocument);
return doc;
}
const ssrWindow = {
document: ssrDocument,
navigator: {
userAgent: ""
},
location: {
hash: "",
host: "",
hostname: "",
href: "",
origin: "",
pathname: "",
protocol: "",
search: ""
},
history: {
replaceState() {},
pushState() {},
go() {},
back() {}
},
CustomEvent: function CustomEvent() {
return this;
},
addEventListener() {},
removeEventListener() {},
getComputedStyle() {
return {
getPropertyValue() {
return "";
}
};
},
Image() {},
Date() {},
screen: {},
setTimeout() {},
clearTimeout() {},
matchMedia() {
return {};
},
requestAnimationFrame(callback) {
if ("undefined" === typeof setTimeout) {
callback();
return null;
}
return setTimeout(callback, 0);
},
cancelAnimationFrame(id) {
if ("undefined" === typeof setTimeout) return;
clearTimeout(id);
}
};
function ssr_window_esm_getWindow() {
const win = "undefined" !== typeof window ? window : {};
extend(win, ssrWindow);
return win;
}
function makeReactive(obj) {
const proto = obj.__proto__;
Object.defineProperty(obj, "__proto__", {
get() {
return proto;
},
set(value) {
proto.__proto__ = value;
}
});
}
class Dom7 extends Array {
constructor(items) {
if ("number" === typeof items) super(items); else {
super(...items || []);
makeReactive(this);
}
}
}
function arrayFlat(arr = []) {
const res = [];
arr.forEach((el => {
if (Array.isArray(el)) res.push(...arrayFlat(el)); else res.push(el);
}));
return res;
}
function arrayFilter(arr, callback) {
return Array.prototype.filter.call(arr, callback);
}
function arrayUnique(arr) {
const uniqueArray = [];
for (let i = 0; i < arr.length; i += 1) if (-1 === uniqueArray.indexOf(arr[i]))
uniqueArray.push(arr[i]);
return uniqueArray;
}
function qsa(selector, context) {
if ("string" !== typeof selector) return [ selector ];
const a = [];
const res = context.querySelectorAll(selector);
for (let i = 0; i < res.length; i += 1) a.push(res[i]);
return a;
}
function dom7_esm_$(selector, context) {
const window = ssr_window_esm_getWindow();
const document = ssr_window_esm_getDocument();
let arr = [];
if (!context && selector instanceof Dom7) return selector;
if (!selector) return new Dom7(arr);
if ("string" === typeof selector) {
const html = selector.trim();
if (html.indexOf("<") >= 0 && html.indexOf(">") >= 0) {
let toCreate = "div";
if (0 === html.indexOf("<li")) toCreate = "ul";
if (0 === html.indexOf("<tr")) toCreate = "tbody";
if (0 === html.indexOf("<td") || 0 === html.indexOf("<th")) toCreate = "tr";
if (0 === html.indexOf("<tbody")) toCreate = "table";
if (0 === html.indexOf("<option")) toCreate = "select";
const tempParent = document.createElement(toCreate);
tempParent.innerHTML = html;
for (let i = 0; i < tempParent.childNodes.length; i += 1)
arr.push(tempParent.childNodes[i]);
} else arr = qsa(selector.trim(), context || document);
} else if (selector.nodeType || selector === window || selector === document)
arr.push(selector); else if (Array.isArray(selector)) {
if (selector instanceof Dom7) return selector;
arr = selector;
}
return new Dom7(arrayUnique(arr));
}
dom7_esm_$.fn = Dom7.prototype;
function addClass(...classes) {
const classNames = arrayFlat(classes.map((c => c.split(" "))));
this.forEach((el => {
el.classList.add(...classNames);
}));
return this;
}
function removeClass(...classes) {
const classNames = arrayFlat(classes.map((c => c.split(" "))));
this.forEach((el => {
el.classList.remove(...classNames);
}));
return this;
}
function toggleClass(...classes) {
const classNames = arrayFlat(classes.map((c => c.split(" "))));
this.forEach((el => {
classNames.forEach((className => {
el.classList.toggle(className);
}));
}));
}
function hasClass(...classes) {
const classNames = arrayFlat(classes.map((c => c.split(" "))));
return arrayFilter(this, (el => classNames.filter((className =>
el.classList.contains(className))).length > 0)).length > 0;
}
function attr(attrs, value) {
if (1 === arguments.length && "string" === typeof attrs) {
if (this[0]) return this[0].getAttribute(attrs);
return;
}
for (let i = 0; i < this.length; i += 1) if (2 === arguments.length) this[i].setAttribute(attrs,
value); else for (const attrName in attrs) {
this[i][attrName] = attrs[attrName];
this[i].setAttribute(attrName, attrs[attrName]);
}
return this;
}
function removeAttr(attr) {
for (let i = 0; i < this.length; i += 1) this[i].removeAttribute(attr);
return this;
}
function transform(transform) {
for (let i = 0; i < this.length; i += 1) this[i].style.transform = transform;
return this;
}
function transition(duration) {
for (let i = 0; i < this.length; i += 1) this[i].style.transitionDuration = "string" !== typeof
duration ? `${duration}ms` : duration;
return this;
}
function on(...args) {
let [eventType, targetSelector, listener, capture] = args;
if ("function" === typeof args[1]) {
[eventType, listener, capture] = args;
targetSelector = void 0;
}
if (!capture) capture = false;
function handleLiveEvent(e) {
const target = e.target;
if (!target) return;
const eventData = e.target.dom7EventData || [];
if (eventData.indexOf(e) < 0) eventData.unshift(e);
if (dom7_esm_$(target).is(targetSelector)) listener.apply(target, eventData); else {
const parents = dom7_esm_$(target).parents();
for (let k = 0; k < parents.length; k += 1) if
(dom7_esm_$(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);
}
}
function handleEvent(e) {
const eventData = e && e.target ? e.target.dom7EventData || [] : [];
if (eventData.indexOf(e) < 0) eventData.unshift(e);
listener.apply(this, eventData);
}
const events = eventType.split(" ");
let j;
for (let i = 0; i < this.length; i += 1) {
const el = this[i];
if (!targetSelector) for (j = 0; j < events.length; j += 1) {
const event = events[j];
if (!el.dom7Listeners) el.dom7Listeners = {};
if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];
el.dom7Listeners[event].push({
listener,
proxyListener: handleEvent
});
el.addEventListener(event, handleEvent, capture);
} else for (j = 0; j < events.length; j += 1) {
const event = events[j];
if (!el.dom7LiveListeners) el.dom7LiveListeners = {};
if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];
el.dom7LiveListeners[event].push({
listener,
proxyListener: handleLiveEvent
});
el.addEventListener(event, handleLiveEvent, capture);
}
}
return this;
}
function off(...args) {
let [eventType, targetSelector, listener, capture] = args;
if ("function" === typeof args[1]) {
[eventType, listener, capture] = args;
targetSelector = void 0;
}
if (!capture) capture = false;
const events = eventType.split(" ");
for (let i = 0; i < events.length; i += 1) {
const event = events[i];
for (let j = 0; j < this.length; j += 1) {
const el = this[j];
let handlers;
if (!targetSelector && el.dom7Listeners) handlers = el.dom7Listeners[event]; else if
(targetSelector && el.dom7LiveListeners) handlers = el.dom7LiveListeners[event];
if (handlers && handlers.length) for (let k = handlers.length - 1; k >= 0; k -= 1) {
const handler = handlers[k];
if (listener && handler.listener === listener) {
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
} else if (listener && handler.listener && handler.listener.dom7proxy &&
handler.listener.dom7proxy === listener) {
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
} else if (!listener) {
el.removeEventListener(event, handler.proxyListener, capture);
handlers.splice(k, 1);
}
}
}
}
return this;
}
function trigger(...args) {
const window = ssr_window_esm_getWindow();
const events = args[0].split(" ");
const eventData = args[1];
for (let i = 0; i < events.length; i += 1) {
const event = events[i];
for (let j = 0; j < this.length; j += 1) {
const el = this[j];
if (window.CustomEvent) {
const evt = new window.CustomEvent(event, {
detail: eventData,
bubbles: true,
cancelable: true
});
el.dom7EventData = args.filter(((data, dataIndex) => dataIndex > 0));
el.dispatchEvent(evt);
el.dom7EventData = [];
delete el.dom7EventData;
}
}
}
return this;
}
function transitionEnd(callback) {
const dom = this;
function fireCallBack(e) {
if (e.target !== this) return;
callback.call(this, e);
dom.off("transitionend", fireCallBack);
}
if (callback) dom.on("transitionend", fireCallBack);
return this;
}
function dom7_esm_outerWidth(includeMargins) {
if (this.length > 0) {
if (includeMargins) {
const styles = this.styles();
return this[0].offsetWidth + parseFloat(styles.getPropertyValue("margin-right")) +
parseFloat(styles.getPropertyValue("margin-left"));
}
return this[0].offsetWidth;
}
return null;
}
function dom7_esm_outerHeight(includeMargins) {
if (this.length > 0) {
if (includeMargins) {
const styles = this.styles();
return this[0].offsetHeight + parseFloat(styles.getPropertyValue("margin-top")) +
parseFloat(styles.getPropertyValue("margin-bottom"));
}
return this[0].offsetHeight;
}
return null;
}
function offset() {
if (this.length > 0) {
const window = ssr_window_esm_getWindow();
const document = ssr_window_esm_getDocument();
const el = this[0];
const box = el.getBoundingClientRect();
const body = document.body;
const clientTop = el.clientTop || body.clientTop || 0;
const clientLeft = el.clientLeft || body.clientLeft || 0;
const scrollTop = el === window ? window.scrollY : el.scrollTop;
const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
return {
top: box.top + scrollTop - clientTop,
left: box.left + scrollLeft - clientLeft
};
}
return null;
}
function styles() {
const window = ssr_window_esm_getWindow();
if (this[0]) return window.getComputedStyle(this[0], null);
return {};
}
function css(props, value) {
const window = ssr_window_esm_getWindow();
let i;
if (1 === arguments.length) if ("string" === typeof props) {
if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);
} else {
for (i = 0; i < this.length; i += 1) for (const prop in props) this[i].style[prop] =
props[prop];
return this;
}
if (2 === arguments.length && "string" === typeof props) {
for (i = 0; i < this.length; i += 1) this[i].style[props] = value;
return this;
}
return this;
}
function each(callback) {
if (!callback) return this;
this.forEach(((el, index) => {
callback.apply(el, [ el, index ]);
}));
return this;
}
function filter(callback) {
const result = arrayFilter(this, callback);
return dom7_esm_$(result);
}
function html(html) {
if ("undefined" === typeof html) return this[0] ? this[0].innerHTML : null;
for (let i = 0; i < this.length; i += 1) this[i].innerHTML = html;
return this;
}
function dom7_esm_text(text) {
if ("undefined" === typeof text) return this[0] ? this[0].textContent.trim() : null;
for (let i = 0; i < this.length; i += 1) this[i].textContent = text;
return this;
}
function is(selector) {
const window = ssr_window_esm_getWindow();
const document = ssr_window_esm_getDocument();
const el = this[0];
let compareWith;
let i;
if (!el || "undefined" === typeof selector) return false;
if ("string" === typeof selector) {
if (el.matches) return el.matches(selector);
if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);
if (el.msMatchesSelector) return el.msMatchesSelector(selector);
compareWith = dom7_esm_$(selector);
for (i = 0; i < compareWith.length; i += 1) if (compareWith[i] === el) return true;
return false;
}
if (selector === document) return el === document;
if (selector === window) return el === window;
if (selector.nodeType || selector instanceof Dom7) {
compareWith = selector.nodeType ? [ selector ] : selector;
for (i = 0; i < compareWith.length; i += 1) if (compareWith[i] === el) return true;
return false;
}
return false;
}
function index() {
let child = this[0];
let i;
if (child) {
i = 0;
while (null !== (child = child.previousSibling)) if (1 === child.nodeType) i += 1;
return i;
}
return;
}
function eq(index) {
if ("undefined" === typeof index) return this;
const length = this.length;
if (index > length - 1) return dom7_esm_$([]);
if (index < 0) {
const returnIndex = length + index;
if (returnIndex < 0) return dom7_esm_$([]);
return dom7_esm_$([ this[returnIndex] ]);
}
return dom7_esm_$([ this[index] ]);
}
function append(...els) {
let newChild;
const document = ssr_window_esm_getDocument();
for (let k = 0; k < els.length; k += 1) {
newChild = els[k];
for (let i = 0; i < this.length; i += 1) if ("string" === typeof newChild) {
const tempDiv = document.createElement("div");
tempDiv.innerHTML = newChild;
while (tempDiv.firstChild) this[i].appendChild(tempDiv.firstChild);
} else if (newChild instanceof Dom7) for (let j = 0; j < newChild.length; j += 1)
this[i].appendChild(newChild[j]); else this[i].appendChild(newChild);
}
return this;
}
function prepend(newChild) {
const document = ssr_window_esm_getDocument();
let i;
let j;
for (i = 0; i < this.length; i += 1) if ("string" === typeof newChild) {
const tempDiv = document.createElement("div");
tempDiv.innerHTML = newChild;
for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1)
this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);
} else if (newChild instanceof Dom7) for (j = 0; j < newChild.length; j += 1)
this[i].insertBefore(newChild[j], this[i].childNodes[0]); else this[i].insertBefore(newChild,
this[i].childNodes[0]);
return this;
}
function next(selector) {
if (this.length > 0) {
if (selector) {
if (this[0].nextElementSibling &&
dom7_esm_$(this[0].nextElementSibling).is(selector)) return
dom7_esm_$([ this[0].nextElementSibling ]);
return dom7_esm_$([]);
}
if (this[0].nextElementSibling) return dom7_esm_$([ this[0].nextElementSibling ]);
return dom7_esm_$([]);
}
return dom7_esm_$([]);
}
function nextAll(selector) {
const nextEls = [];
let el = this[0];
if (!el) return dom7_esm_$([]);
while (el.nextElementSibling) {
const next = el.nextElementSibling;
if (selector) {
if (dom7_esm_$(next).is(selector)) nextEls.push(next);
} else nextEls.push(next);
el = next;
}
return dom7_esm_$(nextEls);
}
function prev(selector) {
if (this.length > 0) {
const el = this[0];
if (selector) {
if (el.previousElementSibling &&
dom7_esm_$(el.previousElementSibling).is(selector)) return
dom7_esm_$([ el.previousElementSibling ]);
return dom7_esm_$([]);
}
if (el.previousElementSibling) return dom7_esm_$([ el.previousElementSibling ]);
return dom7_esm_$([]);
}
return dom7_esm_$([]);
}
function prevAll(selector) {
const prevEls = [];
let el = this[0];
if (!el) return dom7_esm_$([]);
while (el.previousElementSibling) {
const prev = el.previousElementSibling;
if (selector) {
if (dom7_esm_$(prev).is(selector)) prevEls.push(prev);
} else prevEls.push(prev);
el = prev;
}
return dom7_esm_$(prevEls);
}
function dom7_esm_parent(selector) {
const parents = [];
for (let i = 0; i < this.length; i += 1) if (null !== this[i].parentNode) if (selector) {
if (dom7_esm_$(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);
} else parents.push(this[i].parentNode);
return dom7_esm_$(parents);
}
function parents(selector) {
const parents = [];
for (let i = 0; i < this.length; i += 1) {
let parent = this[i].parentNode;
while (parent) {
if (selector) {
if (dom7_esm_$(parent).is(selector)) parents.push(parent);
} else parents.push(parent);
parent = parent.parentNode;
}
}
return dom7_esm_$(parents);
}
function closest(selector) {
let closest = this;
if ("undefined" === typeof selector) return dom7_esm_$([]);
if (!closest.is(selector)) closest = closest.parents(selector).eq(0);
return closest;
}
function find(selector) {
const foundElements = [];
for (let i = 0; i < this.length; i += 1) {
const found = this[i].querySelectorAll(selector);
for (let j = 0; j < found.length; j += 1) foundElements.push(found[j]);
}
return dom7_esm_$(foundElements);
}
function children(selector) {
const children = [];
for (let i = 0; i < this.length; i += 1) {
const childNodes = this[i].children;
for (let j = 0; j < childNodes.length; j += 1) if (!selector ||
dom7_esm_$(childNodes[j]).is(selector)) children.push(childNodes[j]);
}
return dom7_esm_$(children);
}
function remove() {
for (let i = 0; i < this.length; i += 1) if (this[i].parentNode)
this[i].parentNode.removeChild(this[i]);
return this;
}
const noTrigger = "resize scroll".split(" ");
function shortcut(name) {
function eventHandler(...args) {
if ("undefined" === typeof args[0]) {
for (let i = 0; i < this.length; i += 1) if (noTrigger.indexOf(name) < 0) if (name in this[i])
this[i][name](); else dom7_esm_$(this[i]).trigger(name);
return this;
}
return this.on(name, ...args);
}
return eventHandler;
}
shortcut("click");
shortcut("blur");
shortcut("focus");
shortcut("focusin");
shortcut("focusout");
shortcut("keyup");
shortcut("keydown");
shortcut("keypress");
shortcut("submit");
shortcut("change");
shortcut("mousedown");
shortcut("mousemove");
shortcut("mouseup");
shortcut("mouseenter");
shortcut("mouseleave");
shortcut("mouseout");
shortcut("mouseover");
shortcut("touchstart");
shortcut("touchend");
shortcut("touchmove");
shortcut("resize");
shortcut("scroll");
const Methods = {
addClass,
removeClass,
hasClass,
toggleClass,
attr,
removeAttr,
transform,
transition,
on,
off,
trigger,
transitionEnd,
outerWidth: dom7_esm_outerWidth,
outerHeight: dom7_esm_outerHeight,
styles,
offset,
css,
each,
html,
text: dom7_esm_text,
is,
index,
eq,
append,
prepend,
next,
nextAll,
prev,
prevAll,
parent: dom7_esm_parent,
parents,
closest,
find,
children,
filter,
remove
};
Object.keys(Methods).forEach((methodName => {
Object.defineProperty(dom7_esm_$.fn, methodName, {
value: Methods[methodName],
writable: true
});
}));
const dom = dom7_esm_$;
function deleteProps(obj) {
const object = obj;
Object.keys(object).forEach((key => {
try {
object[key] = null;
} catch (e) {}
try {
delete object[key];
} catch (e) {}
}));
}
function utils_nextTick(callback, delay) {
if (void 0 === delay) delay = 0;
return setTimeout(callback, delay);
}
function utils_now() {
return Date.now();
}
function utils_getComputedStyle(el) {
const window = ssr_window_esm_getWindow();
let style;
if (window.getComputedStyle) style = window.getComputedStyle(el, null);
if (!style && el.currentStyle) style = el.currentStyle;
if (!style) style = el.style;
return style;
}
function utils_getTranslate(el, axis) {
if (void 0 === axis) axis = "x";
const window = ssr_window_esm_getWindow();
let matrix;
let curTransform;
let transformMatrix;
const curStyle = utils_getComputedStyle(el, null);
if (window.WebKitCSSMatrix) {
curTransform = curStyle.transform || curStyle.webkitTransform;
if (curTransform.split(",").length > 6) curTransform = curTransform.split(", ").map((a
=> a.replace(",", "."))).join(", ");
transformMatrix = new window.WebKitCSSMatrix("none" === curTransform ? "" :
curTransform);
} else {
transformMatrix = curStyle.MozTransform || curStyle.OTransform ||
curStyle.MsTransform || curStyle.msTransform || curStyle.transform ||
curStyle.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,");
matrix = transformMatrix.toString().split(",");
}
if ("x" === axis) if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; else
if (16 === matrix.length) curTransform = parseFloat(matrix[12]); else curTransform =
parseFloat(matrix[4]);
if ("y" === axis) if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; else
if (16 === matrix.length) curTransform = parseFloat(matrix[13]); else curTransform =
parseFloat(matrix[5]);
return curTransform || 0;
}
function utils_isObject(o) {
return "object" === typeof o && null !== o && o.constructor && "Object" ===
Object.prototype.toString.call(o).slice(8, -1);
}
function isNode(node) {
if ("undefined" !== typeof window && "undefined" !== typeof window.HTMLElement)
return node instanceof HTMLElement;
return node && (1 === node.nodeType || 11 === node.nodeType);
}
function utils_extend() {
const to = Object(arguments.length <= 0 ? void 0 : arguments[0]);
const noExtend = [ "__proto__", "constructor", "prototype" ];
for (let i = 1; i < arguments.length; i += 1) {
const nextSource = i < 0 || arguments.length <= i ? void 0 : arguments[i];
if (void 0 !== nextSource && null !== nextSource && !isNode(nextSource)) {
const keysArray = Object.keys(Object(nextSource)).filter((key =>
noExtend.indexOf(key) < 0));
for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
const nextKey = keysArray[nextIndex];
const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (void 0 !== desc && desc.enumerable) if (utils_isObject(to[nextKey]) &&
utils_isObject(nextSource[nextKey])) if (nextSource[nextKey].__swiper__) to[nextKey] =
nextSource[nextKey]; else utils_extend(to[nextKey], nextSource[nextKey]); else if
(!utils_isObject(to[nextKey]) && utils_isObject(nextSource[nextKey])) {
to[nextKey] = {};
if (nextSource[nextKey].__swiper__) to[nextKey] = nextSource[nextKey]; else
utils_extend(to[nextKey], nextSource[nextKey]);
} else to[nextKey] = nextSource[nextKey];
}
}
}
return to;
}
function utils_setCSSProperty(el, varName, varValue) {
el.style.setProperty(varName, varValue);
}
function animateCSSModeScroll(_ref) {
let {swiper, targetPosition, side} = _ref;
const window = ssr_window_esm_getWindow();
const startPosition = -swiper.translate;
let startTime = null;
let time;
const duration = swiper.params.speed;
swiper.wrapperEl.style.scrollSnapType = "none";
window.cancelAnimationFrame(swiper.cssModeFrameID);
const dir = targetPosition > startPosition ? "next" : "prev";
const isOutOfBound = (current, target) => "next" === dir && current >= target || "prev"
=== dir && current <= target;
const animate = () => {
time = (new Date).getTime();
if (null === startTime) startTime = time;
const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
const easeProgress = .5 - Math.cos(progress * Math.PI) / 2;
let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
if (isOutOfBound(currentPosition, targetPosition)) currentPosition = targetPosition;
swiper.wrapperEl.scrollTo({
[side]: currentPosition
});
if (isOutOfBound(currentPosition, targetPosition)) {
swiper.wrapperEl.style.overflow = "hidden";
swiper.wrapperEl.style.scrollSnapType = "";
setTimeout((() => {
swiper.wrapperEl.style.overflow = "";
swiper.wrapperEl.scrollTo({
[side]: currentPosition
});
}));
window.cancelAnimationFrame(swiper.cssModeFrameID);
return;
}
swiper.cssModeFrameID = window.requestAnimationFrame(animate);
};
animate();
}
let support;
function calcSupport() {
const window = ssr_window_esm_getWindow();
const document = ssr_window_esm_getDocument();
return {
smoothScroll: document.documentElement && "scrollBehavior" in
document.documentElement.style,
touch: !!("ontouchstart" in window || window.DocumentTouch && document
instanceof window.DocumentTouch),
passiveListener: function checkPassiveListener() {
let supportsPassive = false;
try {
const opts = Object.defineProperty({}, "passive", {
get() {
supportsPassive = true;
}
});
window.addEventListener("testPassiveListener", null, opts);
} catch (e) {}
return supportsPassive;
}(),
gestures: function checkGestures() {
return "ongesturestart" in window;
}()
};
}
function getSupport() {
if (!support) support = calcSupport();
return support;
}
let deviceCached;
function calcDevice(_temp) {
let {userAgent} = void 0 === _temp ? {} : _temp;
const support = getSupport();
const window = ssr_window_esm_getWindow();
const platform = window.navigator.platform;
const ua = userAgent || window.navigator.userAgent;
const device = {
ios: false,
android: false
};
const screenWidth = window.screen.width;
const screenHeight = window.screen.height;
const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
const windows = "Win32" === platform;
let macos = "MacIntel" === platform;
const iPadScreens = [ "1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112",
"1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810" ];
if (!ipad && macos && support.touch &&
iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
ipad = ua.match(/(Version)\/([\d.]+)/);
if (!ipad) ipad = [ 0, 1, "13_0_0" ];
macos = false;
}
if (android && !windows) {
device.os = "android";
device.android = true;
}
if (ipad || iphone || ipod) {
device.os = "ios";
device.ios = true;
}
return device;
}
function getDevice(overrides) {
if (void 0 === overrides) overrides = {};
if (!deviceCached) deviceCached = calcDevice(overrides);
return deviceCached;
}
let browser;
function calcBrowser() {
const window = ssr_window_esm_getWindow();
function isSafari() {
const ua = window.navigator.userAgent.toLowerCase();
return ua.indexOf("safari") >= 0 && ua.indexOf("chrome") < 0 &&
ua.indexOf("android") < 0;
}
return {
isSafari: isSafari(),
isWebView:
/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)
};
}
function getBrowser() {
if (!browser) browser = calcBrowser();
return browser;
}
function Resize(_ref) {
let {swiper, on, emit} = _ref;
const window = ssr_window_esm_getWindow();
let observer = null;
let animationFrame = null;
const resizeHandler = () => {
if (!swiper || swiper.destroyed || !swiper.initialized) return;
emit("beforeResize");
emit("resize");
};
const createObserver = () => {
if (!swiper || swiper.destroyed || !swiper.initialized) return;
observer = new ResizeObserver((entries => {
animationFrame = window.requestAnimationFrame((() => {
const {width, height} = swiper;
let newWidth = width;
let newHeight = height;
entries.forEach((_ref2 => {
let {contentBoxSize, contentRect, target} = _ref2;
if (target && target !== swiper.el) return;
newWidth = contentRect ? contentRect.width : (contentBoxSize[0] ||
contentBoxSize).inlineSize;
newHeight = contentRect ? contentRect.height : (contentBoxSize[0] ||
contentBoxSize).blockSize;
}));
if (newWidth !== width || newHeight !== height) resizeHandler();
}));
}));
observer.observe(swiper.el);
};
const removeObserver = () => {
if (animationFrame) window.cancelAnimationFrame(animationFrame);
if (observer && observer.unobserve && swiper.el) {
observer.unobserve(swiper.el);
observer = null;
}
};
const orientationChangeHandler = () => {
if (!swiper || swiper.destroyed || !swiper.initialized) return;
emit("orientationchange");
};
on("init", (() => {
if (swiper.params.resizeObserver && "undefined" !== typeof window.ResizeObserver)
{
createObserver();
return;
}
window.addEventListener("resize", resizeHandler);
window.addEventListener("orientationchange", orientationChangeHandler);
}));
on("destroy", (() => {
removeObserver();
window.removeEventListener("resize", resizeHandler);
window.removeEventListener("orientationchange", orientationChangeHandler);
}));
}
function Observer(_ref) {
let {swiper, extendParams, on, emit} = _ref;
const observers = [];
const window = ssr_window_esm_getWindow();
const attach = function(target, options) {
if (void 0 === options) options = {};
const ObserverFunc = window.MutationObserver ||
window.WebkitMutationObserver;
const observer = new ObserverFunc((mutations => {
if (1 === mutations.length) {
emit("observerUpdate", mutations[0]);
return;
}
const observerUpdate = function observerUpdate() {
emit("observerUpdate", mutations[0]);
};
if (window.requestAnimationFrame)
window.requestAnimationFrame(observerUpdate); else
window.setTimeout(observerUpdate, 0);
}));
observer.observe(target, {
attributes: "undefined" === typeof options.attributes ? true : options.attributes,
childList: "undefined" === typeof options.childList ? true : options.childList,
characterData: "undefined" === typeof options.characterData ? true :
options.characterData
});
observers.push(observer);
};
const init = () => {
if (!swiper.params.observer) return;
if (swiper.params.observeParents) {
const containerParents = swiper.$el.parents();
for (let i = 0; i < containerParents.length; i += 1) attach(containerParents[i]);
}
attach(swiper.$el[0], {
childList: swiper.params.observeSlideChildren
});
attach(swiper.$wrapperEl[0], {
attributes: false
});
};
const destroy = () => {
observers.forEach((observer => {
observer.disconnect();
}));
observers.splice(0, observers.length);
};
extendParams({
observer: false,
observeParents: false,
observeSlideChildren: false
});
on("init", init);
on("destroy", destroy);
}
const events_emitter = {
on(events, handler, priority) {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if ("function" !== typeof handler) return self;
const method = priority ? "unshift" : "push";
events.split(" ").forEach((event => {
if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
self.eventsListeners[event][method](handler);
}));
return self;
},
once(events, handler, priority) {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if ("function" !== typeof handler) return self;
function onceHandler() {
self.off(events, onceHandler);
if (onceHandler.__emitterProxy) delete onceHandler.__emitterProxy;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len;
_key++) args[_key] = arguments[_key];
handler.apply(self, args);
}
onceHandler.__emitterProxy = handler;
return self.on(events, onceHandler, priority);
},
onAny(handler, priority) {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if ("function" !== typeof handler) return self;
const method = priority ? "unshift" : "push";
if (self.eventsAnyListeners.indexOf(handler) < 0)
self.eventsAnyListeners[method](handler);
return self;
},
offAny(handler) {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if (!self.eventsAnyListeners) return self;
const index = self.eventsAnyListeners.indexOf(handler);
if (index >= 0) self.eventsAnyListeners.splice(index, 1);
return self;
},
off(events, handler) {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if (!self.eventsListeners) return self;
events.split(" ").forEach((event => {
if ("undefined" === typeof handler) self.eventsListeners[event] = []; else if
(self.eventsListeners[event]) self.eventsListeners[event].forEach(((eventHandler, index) => {
if (eventHandler === handler || eventHandler.__emitterProxy &&
eventHandler.__emitterProxy === handler) self.eventsListeners[event].splice(index, 1);
}));
}));
return self;
},
emit() {
const self = this;
if (!self.eventsListeners || self.destroyed) return self;
if (!self.eventsListeners) return self;
let events;
let data;
let context;
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2;
_key2++) args[_key2] = arguments[_key2];
if ("string" === typeof args[0] || Array.isArray(args[0])) {
events = args[0];
data = args.slice(1, args.length);
context = self;
} else {
events = args[0].events;
data = args[0].data;
context = args[0].context || self;
}
data.unshift(context);
const eventsArray = Array.isArray(events) ? events : events.split(" ");
eventsArray.forEach((event => {
if (self.eventsAnyListeners && self.eventsAnyListeners.length)
self.eventsAnyListeners.forEach((eventHandler => {
eventHandler.apply(context, [ event, ...data ]);
}));
if (self.eventsListeners && self.eventsListeners[event])
self.eventsListeners[event].forEach((eventHandler => {
eventHandler.apply(context, data);
}));
}));
return self;
}
};
function updateSize() {
const swiper = this;
let width;
let height;
const $el = swiper.$el;
if ("undefined" !== typeof swiper.params.width && null !== swiper.params.width) width
= swiper.params.width; else width = $el[0].clientWidth;
if ("undefined" !== typeof swiper.params.height && null !== swiper.params.height)
height = swiper.params.height; else height = $el[0].clientHeight;
if (0 === width && swiper.isHorizontal() || 0 === height && swiper.isVertical()) return;
width = width - parseInt($el.css("padding-left") || 0, 10) - parseInt($el.css("padding-
right") || 0, 10);
height = height - parseInt($el.css("padding-top") || 0, 10) - parseInt($el.css("padding-
bottom") || 0, 10);
if (Number.isNaN(width)) width = 0;
if (Number.isNaN(height)) height = 0;
Object.assign(swiper, {
width,
height,
size: swiper.isHorizontal() ? width : height
});
}
function updateSlides() {
const swiper = this;
function getDirectionLabel(property) {
if (swiper.isHorizontal()) return property;
return {
width: "height",
"margin-top": "margin-left",
"margin-bottom ": "margin-right",
"margin-left": "margin-top",
"margin-right": "margin-bottom",
"padding-left": "padding-top",
"padding-right": "padding-bottom",
marginRight: "marginBottom"
}[property];
}
function getDirectionPropertyValue(node, label) {
return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);
}
const params = swiper.params;
const {$wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL} = swiper;
const isVirtual = swiper.virtual && params.virtual.enabled;
const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);
const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
let snapGrid = [];
const slidesGrid = [];
const slidesSizesGrid = [];
let offsetBefore = params.slidesOffsetBefore;
if ("function" === typeof offsetBefore) offsetBefore =
params.slidesOffsetBefore.call(swiper);
let offsetAfter = params.slidesOffsetAfter;
if ("function" === typeof offsetAfter) offsetAfter = params.slidesOffsetAfter.call(swiper);
const previousSnapGridLength = swiper.snapGrid.length;
const previousSlidesGridLength = swiper.slidesGrid.length;
let spaceBetween = params.spaceBetween;
let slidePosition = -offsetBefore;
let prevSlideSize = 0;
let index = 0;
if ("undefined" === typeof swiperSize) return;
if ("string" === typeof spaceBetween && spaceBetween.indexOf("%") >= 0)
spaceBetween = parseFloat(spaceBetween.replace("%", "")) / 100 * swiperSize;
swiper.virtualSize = -spaceBetween;
if (rtl) slides.css({
marginLeft: "",
marginBottom: "",
marginTop: ""
}); else slides.css({
marginRight: "",
marginBottom: "",
marginTop: ""
});
if (params.centeredSlides && params.cssMode) {
utils_setCSSProperty(swiper.wrapperEl, "--swiper-centered-offset-before", "");
utils_setCSSProperty(swiper.wrapperEl, "--swiper-centered-offset-after", "");
}
const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
if (gridEnabled) swiper.grid.initSlides(slidesLength);
let slideSize;
const shouldResetSlideSize = "auto" === params.slidesPerView && params.breakpoints
&& Object.keys(params.breakpoints).filter((key => "undefined" !== typeof
params.breakpoints[key].slidesPerView)).length > 0;
for (let i = 0; i < slidesLength; i += 1) {
slideSize = 0;
const slide = slides.eq(i);
if (gridEnabled) swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);
if ("none" === slide.css("display")) continue;
if ("auto" === params.slidesPerView) {
if (shouldResetSlideSize) slides[i].style[getDirectionLabel("width")] = ``;
const slideStyles = getComputedStyle(slide[0]);
const currentTransform = slide[0].style.transform;
const currentWebKitTransform = slide[0].style.webkitTransform;
if (currentTransform) slide[0].style.transform = "none";
if (currentWebKitTransform) slide[0].style.webkitTransform = "none";
if (params.roundLengths) slideSize = swiper.isHorizontal() ? slide.outerWidth(true) :
slide.outerHeight(true); else {
const width = getDirectionPropertyValue(slideStyles, "width");
const paddingLeft = getDirectionPropertyValue(slideStyles, "padding-left");
const paddingRight = getDirectionPropertyValue(slideStyles, "padding-right");
const marginLeft = getDirectionPropertyValue(slideStyles, "margin-left");
const marginRight = getDirectionPropertyValue(slideStyles, "margin-right");
const boxSizing = slideStyles.getPropertyValue("box-sizing");
if (boxSizing && "border-box" === boxSizing) slideSize = width + marginLeft +
marginRight; else {
const {clientWidth, offsetWidth} = slide[0];
slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight +
(offsetWidth - clientWidth);
}
}
if (currentTransform) slide[0].style.transform = currentTransform;
if (currentWebKitTransform) slide[0].style.webkitTransform =
currentWebKitTransform;
if (params.roundLengths) slideSize = Math.floor(slideSize);
} else {
slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) /
params.slidesPerView;
if (params.roundLengths) slideSize = Math.floor(slideSize);
if (slides[i]) slides[i].style[getDirectionLabel("width")] = `${slideSize}px`;
}
if (slides[i]) slides[i].swiperSlideSize = slideSize;
slidesSizesGrid.push(slideSize);
if (params.centeredSlides) {
slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
if (0 === prevSlideSize && 0 !== i) slidePosition = slidePosition - swiperSize / 2 -
spaceBetween;
if (0 === i) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
if (Math.abs(slidePosition) < 1 / 1e3) slidePosition = 0;
if (params.roundLengths) slidePosition = Math.floor(slidePosition);
if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
} else {
if (params.roundLengths) slidePosition = Math.floor(slidePosition);
if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) %
swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
slidesGrid.push(slidePosition);
slidePosition = slidePosition + slideSize + spaceBetween;
}
swiper.virtualSize += slideSize + spaceBetween;
prevSlideSize = slideSize;
index += 1;
}
swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
if (rtl && wrongRTL && ("slide" === params.effect || "coverflow" === params.effect))
$wrapperEl.css({
width: `${swiper.virtualSize + params.spaceBetween}px`
});
if (params.setWrapperSize) $wrapperEl.css({
[getDirectionLabel("width")]: `${swiper.virtualSize + params.spaceBetween}px`
});
if (gridEnabled) swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);
if (!params.centeredSlides) {
const newSlidesGrid = [];
for (let i = 0; i < snapGrid.length; i += 1) {
let slidesGridItem = snapGrid[i];
if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
if (snapGrid[i] <= swiper.virtualSize - swiperSize)
newSlidesGrid.push(slidesGridItem);
}
snapGrid = newSlidesGrid;
if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length -
1]) > 1) snapGrid.push(swiper.virtualSize - swiperSize);
}
if (0 === snapGrid.length) snapGrid = [ 0 ];
if (0 !== params.spaceBetween) {
const key = swiper.isHorizontal() && rtl ? "marginLeft" :
getDirectionLabel("marginRight");
slides.filter(((_, slideIndex) => {
if (!params.cssMode) return true;
if (slideIndex === slides.length - 1) return false;
return true;
})).css({
[key]: `${spaceBetween}px`
});
}
if (params.centeredSlides && params.centeredSlidesBounds) {
let allSlidesSize = 0;
slidesSizesGrid.forEach((slideSizeValue => {
allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween :
0);
}));
allSlidesSize -= params.spaceBetween;
const maxSnap = allSlidesSize - swiperSize;
snapGrid = snapGrid.map((snap => {
if (snap < 0) return -offsetBefore;
if (snap > maxSnap) return maxSnap + offsetAfter;
return snap;
}));
}
if (params.centerInsufficientSlides) {
let allSlidesSize = 0;
slidesSizesGrid.forEach((slideSizeValue => {
allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween :
0);
}));
allSlidesSize -= params.spaceBetween;
if (allSlidesSize < swiperSize) {
const allSlidesOffset = (swiperSize - allSlidesSize) / 2;
snapGrid.forEach(((snap, snapIndex) => {
snapGrid[snapIndex] = snap - allSlidesOffset;
}));
slidesGrid.forEach(((snap, snapIndex) => {
slidesGrid[snapIndex] = snap + allSlidesOffset;
}));
}
}
Object.assign(swiper, {
slides,
snapGrid,
slidesGrid,
slidesSizesGrid
});
if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
utils_setCSSProperty(swiper.wrapperEl, "--swiper-centered-offset-before", `${-
snapGrid[0]}px`);
utils_setCSSProperty(swiper.wrapperEl, "--swiper-centered-offset-after",
`${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
const addToSnapGrid = -swiper.snapGrid[0];
const addToSlidesGrid = -swiper.slidesGrid[0];
swiper.snapGrid = swiper.snapGrid.map((v => v + addToSnapGrid));
swiper.slidesGrid = swiper.slidesGrid.map((v => v + addToSlidesGrid));
}
if (slidesLength !== previousSlidesLength) swiper.emit("slidesLengthChange");
if (snapGrid.length !== previousSnapGridLength) {
if (swiper.params.watchOverflow) swiper.checkOverflow();
swiper.emit("snapGridLengthChange");
}
if (slidesGrid.length !== previousSlidesGridLength)
swiper.emit("slidesGridLengthChange");
if (params.watchSlidesProgress) swiper.updateSlidesOffset();
if (!isVirtual && !params.cssMode && ("slide" === params.effect || "fade" ===
params.effect)) {
const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);
if (slidesLength <= params.maxBackfaceHiddenSlides) {
if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);
} else if (hasClassBackfaceClassAdded) swiper.$el.removeClass(backFaceHiddenClass);
}
}
function updateAutoHeight(speed) {
const swiper = this;
const activeSlides = [];
const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
let newHeight = 0;
let i;
if ("number" === typeof speed) swiper.setTransition(speed); else if (true === speed)
swiper.setTransition(swiper.params.speed);
const getSlideByIndex = index => {
if (isVirtual) return swiper.slides.filter((el => parseInt(el.getAttribute("data-swiper-
slide-index"), 10) === index))[0];
return swiper.slides.eq(index)[0];
};
if ("auto" !== swiper.params.slidesPerView && swiper.params.slidesPerView > 1) if
(swiper.params.centeredSlides) (swiper.visibleSlides || dom([])).each((slide => {
activeSlides.push(slide);
})); else for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
const index = swiper.activeIndex + i;
if (index > swiper.slides.length && !isVirtual) break;
activeSlides.push(getSlideByIndex(index));
} else activeSlides.push(getSlideByIndex(swiper.activeIndex));
for (i = 0; i < activeSlides.length; i += 1) if ("undefined" !== typeof activeSlides[i]) {
const height = activeSlides[i].offsetHeight;
newHeight = height > newHeight ? height : newHeight;
}
if (newHeight || 0 === newHeight) swiper.$wrapperEl.css("height", `${newHeight}px`);
}
function updateSlidesOffset() {
const swiper = this;
const slides = swiper.slides;
for (let i = 0; i < slides.length; i += 1) slides[i].swiperSlideOffset = swiper.isHorizontal() ?
slides[i].offsetLeft : slides[i].offsetTop;
}
function updateSlidesProgress(translate) {
if (void 0 === translate) translate = this && this.translate || 0;
const swiper = this;
const params = swiper.params;
const {slides, rtlTranslate: rtl, snapGrid} = swiper;
if (0 === slides.length) return;
if ("undefined" === typeof slides[0].swiperSlideOffset) swiper.updateSlidesOffset();
let offsetCenter = -translate;
if (rtl) offsetCenter = translate;
slides.removeClass(params.slideVisibleClass);
swiper.visibleSlidesIndexes = [];
swiper.visibleSlides = [];
for (let i = 0; i < slides.length; i += 1) {
const slide = slides[i];
let slideOffset = slide.swiperSlideOffset;
if (params.cssMode && params.centeredSlides) slideOffset -=
slides[0].swiperSlideOffset;
const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() :
0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ?
swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);
const slideBefore = -(offsetCenter - slideOffset);
const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 &&
slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
if (isVisible) {
swiper.visibleSlides.push(slide);
swiper.visibleSlidesIndexes.push(i);
slides.eq(i).addClass(params.slideVisibleClass);
}
slide.progress = rtl ? -slideProgress : slideProgress;
slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
}
swiper.visibleSlides = dom(swiper.visibleSlides);
}
function updateProgress(translate) {
const swiper = this;
if ("undefined" === typeof translate) {
const multiplier = swiper.rtlTranslate ? -1 : 1;
translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
}
const params = swiper.params;
const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
let {progress, isBeginning, isEnd} = swiper;
const wasBeginning = isBeginning;
const wasEnd = isEnd;
if (0 === translatesDiff) {
progress = 0;
isBeginning = true;
isEnd = true;
} else {
progress = (translate - swiper.minTranslate()) / translatesDiff;
isBeginning = progress <= 0;
isEnd = progress >= 1;
}
Object.assign(swiper, {
progress,
isBeginning,
isEnd
});
if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight)
swiper.updateSlidesProgress(translate);
if (isBeginning && !wasBeginning) swiper.emit("reachBeginning toEdge");
if (isEnd && !wasEnd) swiper.emit("reachEnd toEdge");
if (wasBeginning && !isBeginning || wasEnd && !isEnd) swiper.emit("fromEdge");
swiper.emit("progress", progress);
}
function updateSlidesClasses() {
const swiper = this;
const {slides, params, $wrapperEl, activeIndex, realIndex} = swiper;
const isVirtual = swiper.virtual && params.virtual.enabled;
slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass}
${params.slidePrevClass} ${params.slideDuplicateActiveClass}
${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);
let activeSlide;
if (isVirtual) activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-
slide-index="${activeIndex}"]`); else activeSlide = slides.eq(activeIndex);
activeSlide.addClass(params.slideActiveClass);
if (params.loop) if (activeSlide.hasClass(params.slideDuplicateClass))
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-
slide-index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass); else
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-
index="${realIndex}"]`).addClass(params.slideDuplicateActiveClass);
let nextSlide =
activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);
if (params.loop && 0 === nextSlide.length) {
nextSlide = slides.eq(0);
nextSlide.addClass(params.slideNextClass);
}
let prevSlide =
activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);
if (params.loop && 0 === prevSlide.length) {
prevSlide = slides.eq(-1);
prevSlide.addClass(params.slidePrevClass);
}
if (params.loop) {
if (nextSlide.hasClass(params.slideDuplicateClass))
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-
slide-index="${nextSlide.attr("data-swiper-slide-
index")}"]`).addClass(params.slideDuplicateNextClass); else
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-
index="${nextSlide.attr("data-swiper-slide-
index")}"]`).addClass(params.slideDuplicateNextClass);
if (prevSlide.hasClass(params.slideDuplicateClass))
$wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-
slide-index="${prevSlide.attr("data-swiper-slide-
index")}"]`).addClass(params.slideDuplicatePrevClass); else
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-
index="${prevSlide.attr("data-swiper-slide-
index")}"]`).addClass(params.slideDuplicatePrevClass);
}
swiper.emitSlidesClasses();
}
function updateActiveIndex(newActiveIndex) {
const swiper = this;
const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
const {slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex:
previousRealIndex, snapIndex: previousSnapIndex} = swiper;
let activeIndex = newActiveIndex;
let snapIndex;
if ("undefined" === typeof activeIndex) {
for (let i = 0; i < slidesGrid.length; i += 1) if ("undefined" !== typeof slidesGrid[i + 1]) {
if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] -
slidesGrid[i]) / 2) activeIndex = i; else if (translate >= slidesGrid[i] && translate < slidesGrid[i
+ 1]) activeIndex = i + 1;
} else if (translate >= slidesGrid[i]) activeIndex = i;
if (params.normalizeSlideIndex) if (activeIndex < 0 || "undefined" === typeof
activeIndex) activeIndex = 0;
}
if (snapGrid.indexOf(translate) >= 0) snapIndex = snapGrid.indexOf(translate); else {
const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
}
if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
if (activeIndex === previousIndex) {
if (snapIndex !== previousSnapIndex) {
swiper.snapIndex = snapIndex;
swiper.emit("snapIndexChange");
}
return;
}
const realIndex = parseInt(swiper.slides.eq(activeIndex).attr("data-swiper-slide-index")
|| activeIndex, 10);
Object.assign(swiper, {
snapIndex,
realIndex,
previousIndex,
activeIndex
});
swiper.emit("activeIndexChange");
swiper.emit("snapIndexChange");
if (previousRealIndex !== realIndex) swiper.emit("realIndexChange");
if (swiper.initialized || swiper.params.runCallbacksOnInit) swiper.emit("slideChange");
}
function updateClickedSlide(e) {
const swiper = this;
const params = swiper.params;
const slide = dom(e).closest(`.${params.slideClass}`)[0];
let slideFound = false;
let slideIndex;
if (slide) for (let i = 0; i < swiper.slides.length; i += 1) if (swiper.slides[i] === slide) {
slideFound = true;
slideIndex = i;
break;
}
if (slide && slideFound) {
swiper.clickedSlide = slide;
if (swiper.virtual && swiper.params.virtual.enabled) swiper.clickedIndex =
parseInt(dom(slide).attr("data-swiper-slide-index"), 10); else swiper.clickedIndex =
slideIndex;
} else {
swiper.clickedSlide = void 0;
swiper.clickedIndex = void 0;
return;
}
if (params.slideToClickedSlide && void 0 !== swiper.clickedIndex &&
swiper.clickedIndex !== swiper.activeIndex) swiper.slideToClickedSlide();
}
const update = {
updateSize,
updateSlides,
updateAutoHeight,
updateSlidesOffset,
updateSlidesProgress,
updateProgress,
updateSlidesClasses,
updateActiveIndex,
updateClickedSlide
};
function getSwiperTranslate(axis) {
if (void 0 === axis) axis = this.isHorizontal() ? "x" : "y";
const swiper = this;
const {params, rtlTranslate: rtl, translate, $wrapperEl} = swiper;
if (params.virtualTranslate) return rtl ? -translate : translate;
if (params.cssMode) return translate;
let currentTranslate = utils_getTranslate($wrapperEl[0], axis);
if (rtl) currentTranslate = -currentTranslate;
return currentTranslate || 0;
}
function setTranslate(translate, byController) {
const swiper = this;
const {rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress} = swiper;
let x = 0;
let y = 0;
const z = 0;
if (swiper.isHorizontal()) x = rtl ? -translate : translate; else y = translate;
if (params.roundLengths) {
x = Math.floor(x);
y = Math.floor(y);
}
if (params.cssMode) wrapperEl[swiper.isHorizontal() ? "scrollLeft" : "scrollTop"] =
swiper.isHorizontal() ? -x : -y; else if (!params.virtualTranslate)
$wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);
swiper.previousTranslate = swiper.translate;
swiper.translate = swiper.isHorizontal() ? x : y;
let newProgress;
const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
if (0 === translatesDiff) newProgress = 0; else newProgress = (translate -
swiper.minTranslate()) / translatesDiff;
if (newProgress !== progress) swiper.updateProgress(translate);
swiper.emit("setTranslate", swiper.translate, byController);
}
function minTranslate() {
return -this.snapGrid[0];
}
function maxTranslate() {
return -this.snapGrid[this.snapGrid.length - 1];
}
function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
if (void 0 === translate) translate = 0;
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
if (void 0 === translateBounds) translateBounds = true;
const swiper = this;
const {params, wrapperEl} = swiper;
if (swiper.animating && params.preventInteractionOnTransition) return false;
const minTranslate = swiper.minTranslate();
const maxTranslate = swiper.maxTranslate();
let newTranslate;
if (translateBounds && translate > minTranslate) newTranslate = minTranslate; else if
(translateBounds && translate < maxTranslate) newTranslate = maxTranslate; else
newTranslate = translate;
swiper.updateProgress(newTranslate);
if (params.cssMode) {
const isH = swiper.isHorizontal();
if (0 === speed) wrapperEl[isH ? "scrollLeft" : "scrollTop"] = -newTranslate; else {
if (!swiper.support.smoothScroll) {
animateCSSModeScroll({
swiper,
targetPosition: -newTranslate,
side: isH ? "left" : "top"
});
return true;
}
wrapperEl.scrollTo({
[isH ? "left" : "top"]: -newTranslate,
behavior: "smooth"
});
}
return true;
}
if (0 === speed) {
swiper.setTransition(0);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit("beforeTransitionStart", speed, internal);
swiper.emit("transitionEnd");
}
} else {
swiper.setTransition(speed);
swiper.setTranslate(newTranslate);
if (runCallbacks) {
swiper.emit("beforeTransitionStart", speed, internal);
swiper.emit("transitionStart");
}
if (!swiper.animating) {
swiper.animating = true;
if (!swiper.onTranslateToWrapperTransitionEnd)
swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
if (!swiper || swiper.destroyed) return;
if (e.target !== this) return;
swiper.$wrapperEl[0].removeEventListener("transitionend",
swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener("webkitTransitionEnd",
swiper.onTranslateToWrapperTransitionEnd);
swiper.onTranslateToWrapperTransitionEnd = null;
delete swiper.onTranslateToWrapperTransitionEnd;
if (runCallbacks) swiper.emit("transitionEnd");
};
swiper.$wrapperEl[0].addEventListener("transitionend",
swiper.onTranslateToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener("webkitTransitionEnd",
swiper.onTranslateToWrapperTransitionEnd);
}
}
return true;
}
const translate = {
getTranslate: getSwiperTranslate,
setTranslate,
minTranslate,
maxTranslate,
translateTo
};
function setTransition(duration, byController) {
const swiper = this;
if (!swiper.params.cssMode) swiper.$wrapperEl.transition(duration);
swiper.emit("setTransition", duration, byController);
}
function transitionEmit(_ref) {
let {swiper, runCallbacks, direction, step} = _ref;
const {activeIndex, previousIndex} = swiper;
let dir = direction;
if (!dir) if (activeIndex > previousIndex) dir = "next"; else if (activeIndex < previousIndex)
dir = "prev"; else dir = "reset";
swiper.emit(`transition${step}`);
if (runCallbacks && activeIndex !== previousIndex) {
if ("reset" === dir) {
swiper.emit(`slideResetTransition${step}`);
return;
}
swiper.emit(`slideChangeTransition${step}`);
if ("next" === dir) swiper.emit(`slideNextTransition${step}`); else
swiper.emit(`slidePrevTransition${step}`);
}
}
function transitionStart(runCallbacks, direction) {
if (void 0 === runCallbacks) runCallbacks = true;
const swiper = this;
const {params} = swiper;
if (params.cssMode) return;
if (params.autoHeight) swiper.updateAutoHeight();
transitionEmit({
swiper,
runCallbacks,
direction,
step: "Start"
});
}
function transitionEnd_transitionEnd(runCallbacks, direction) {
if (void 0 === runCallbacks) runCallbacks = true;
const swiper = this;
const {params} = swiper;
swiper.animating = false;
if (params.cssMode) return;
swiper.setTransition(0);
transitionEmit({
swiper,
runCallbacks,
direction,
step: "End"
});
}
const core_transition = {
setTransition,
transitionStart,
transitionEnd: transitionEnd_transitionEnd
};
function slideTo(index, speed, runCallbacks, internal, initial) {
if (void 0 === index) index = 0;
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
if ("number" !== typeof index && "string" !== typeof index) throw new Error(`The 'index'
argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);
if ("string" === typeof index) {
const indexAsNumber = parseInt(index, 10);
const isValidNumber = isFinite(indexAsNumber);
if (!isValidNumber) throw new Error(`The passed-in 'index' (string) couldn't be
converted to 'number'. [${index}] given.`);
index = indexAsNumber;
}
const swiper = this;
let slideIndex = index;
if (slideIndex < 0) slideIndex = 0;
const {params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl,
wrapperEl, enabled} = swiper;
if (swiper.animating && params.preventInteractionOnTransition || !enabled
&& !internal && !initial) return false;
const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks)
swiper.emit("beforeSlideChangeStart");
const translate = -snapGrid[snapIndex];
swiper.updateProgress(translate);
if (params.normalizeSlideIndex) for (let i = 0; i < slidesGrid.length; i += 1) {
const normalizedTranslate = -Math.floor(100 * translate);
const normalizedGrid = Math.floor(100 * slidesGrid[i]);
const normalizedGridNext = Math.floor(100 * slidesGrid[i + 1]);
if ("undefined" !== typeof slidesGrid[i + 1]) {
if (normalizedTranslate >= normalizedGrid && normalizedTranslate <
normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) slideIndex = i; else if
(normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext)
slideIndex = i + 1;
} else if (normalizedTranslate >= normalizedGrid) slideIndex = i;
}
if (swiper.initialized && slideIndex !== activeIndex) {
if (!swiper.allowSlideNext && translate < swiper.translate && translate <
swiper.minTranslate()) return false;
if (!swiper.allowSlidePrev && translate > swiper.translate && translate >
swiper.maxTranslate()) if ((activeIndex || 0) !== slideIndex) return false;
}
let direction;
if (slideIndex > activeIndex) direction = "next"; else if (slideIndex < activeIndex) direction
= "prev"; else direction = "reset";
if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {
swiper.updateActiveIndex(slideIndex);
if (params.autoHeight) swiper.updateAutoHeight();
swiper.updateSlidesClasses();
if ("slide" !== params.effect) swiper.setTranslate(translate);
if ("reset" !== direction) {
swiper.transitionStart(runCallbacks, direction);
swiper.transitionEnd(runCallbacks, direction);
}
return false;
}
if (params.cssMode) {
const isH = swiper.isHorizontal();
const t = rtl ? translate : -translate;
if (0 === speed) {
const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
if (isVirtual) {
swiper.wrapperEl.style.scrollSnapType = "none";
swiper._immediateVirtual = true;
}
wrapperEl[isH ? "scrollLeft" : "scrollTop"] = t;
if (isVirtual) requestAnimationFrame((() => {
swiper.wrapperEl.style.scrollSnapType = "";
swiper._swiperImmediateVirtual = false;
}));
} else {
if (!swiper.support.smoothScroll) {
animateCSSModeScroll({
swiper,
targetPosition: t,
side: isH ? "left" : "top"
});
return true;
}
wrapperEl.scrollTo({
[isH ? "left" : "top"]: t,
behavior: "smooth"
});
}
return true;
}
swiper.setTransition(speed);
swiper.setTranslate(translate);
swiper.updateActiveIndex(slideIndex);
swiper.updateSlidesClasses();
swiper.emit("beforeTransitionStart", speed, internal);
swiper.transitionStart(runCallbacks, direction);
if (0 === speed) swiper.transitionEnd(runCallbacks, direction); else if (!swiper.animating)
{
swiper.animating = true;
if (!swiper.onSlideToWrapperTransitionEnd) swiper.onSlideToWrapperTransitionEnd
= function transitionEnd(e) {
if (!swiper || swiper.destroyed) return;
if (e.target !== this) return;
swiper.$wrapperEl[0].removeEventListener("transitionend",
swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].removeEventListener("webkitTransitionEnd",
swiper.onSlideToWrapperTransitionEnd);
swiper.onSlideToWrapperTransitionEnd = null;
delete swiper.onSlideToWrapperTransitionEnd;
swiper.transitionEnd(runCallbacks, direction);
};
swiper.$wrapperEl[0].addEventListener("transitionend",
swiper.onSlideToWrapperTransitionEnd);
swiper.$wrapperEl[0].addEventListener("webkitTransitionEnd",
swiper.onSlideToWrapperTransitionEnd);
}
return true;
}
function slideToLoop(index, speed, runCallbacks, internal) {
if (void 0 === index) index = 0;
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
if ("string" === typeof index) {
const indexAsNumber = parseInt(index, 10);
const isValidNumber = isFinite(indexAsNumber);
if (!isValidNumber) throw new Error(`The passed-in 'index' (string) couldn't be
converted to 'number'. [${index}] given.`);
index = indexAsNumber;
}
const swiper = this;
let newIndex = index;
if (swiper.params.loop) newIndex += swiper.loopedSlides;
return swiper.slideTo(newIndex, speed, runCallbacks, internal);
}
function slideNext(speed, runCallbacks, internal) {
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
const swiper = this;
const {animating, enabled, params} = swiper;
if (!enabled) return swiper;
let perGroup = params.slidesPerGroup;
if ("auto" === params.slidesPerView && 1 === params.slidesPerGroup &&
params.slidesPerGroupAuto) perGroup = Math.max(swiper.slidesPerViewDynamic("current",
true), 1);
const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
if (params.loop) {
if (animating && params.loopPreventsSlide) return false;
swiper.loopFix();
swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
}
if (params.rewind && swiper.isEnd) return swiper.slideTo(0, speed, runCallbacks,
internal);
return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
}
function slidePrev(speed, runCallbacks, internal) {
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
const swiper = this;
const {params, animating, snapGrid, slidesGrid, rtlTranslate, enabled} = swiper;
if (!enabled) return swiper;
if (params.loop) {
if (animating && params.loopPreventsSlide) return false;
swiper.loopFix();
swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
}
const translate = rtlTranslate ? swiper.translate : -swiper.translate;
function normalize(val) {
if (val < 0) return -Math.floor(Math.abs(val));
return Math.floor(val);
}
const normalizedTranslate = normalize(translate);
const normalizedSnapGrid = snapGrid.map((val => normalize(val)));
let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
if ("undefined" === typeof prevSnap && params.cssMode) {
let prevSnapIndex;
snapGrid.forEach(((snap, snapIndex) => {
if (normalizedTranslate >= snap) prevSnapIndex = snapIndex;
}));
if ("undefined" !== typeof prevSnapIndex) prevSnap = snapGrid[prevSnapIndex > 0 ?
prevSnapIndex - 1 : prevSnapIndex];
}
let prevIndex = 0;
if ("undefined" !== typeof prevSnap) {
prevIndex = slidesGrid.indexOf(prevSnap);
if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
if ("auto" === params.slidesPerView && 1 === params.slidesPerGroup &&
params.slidesPerGroupAuto) {
prevIndex = prevIndex - swiper.slidesPerViewDynamic("previous", true) + 1;
prevIndex = Math.max(prevIndex, 0);
}
}
if (params.rewind && swiper.isBeginning) {
const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled &&
swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
}
return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
}
function slideReset(speed, runCallbacks, internal) {
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
const swiper = this;
return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
}
function slideToClosest(speed, runCallbacks, internal, threshold) {
if (void 0 === speed) speed = this.params.speed;
if (void 0 === runCallbacks) runCallbacks = true;
if (void 0 === threshold) threshold = .5;
const swiper = this;
let index = swiper.activeIndex;
const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
if (translate >= swiper.snapGrid[snapIndex]) {
const currentSnap = swiper.snapGrid[snapIndex];
const nextSnap = swiper.snapGrid[snapIndex + 1];
if (translate - currentSnap > (nextSnap - currentSnap) * threshold) index +=
swiper.params.slidesPerGroup;
} else {
const prevSnap = swiper.snapGrid[snapIndex - 1];
const currentSnap = swiper.snapGrid[snapIndex];
if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) index -=
swiper.params.slidesPerGroup;
}
index = Math.max(index, 0);
index = Math.min(index, swiper.slidesGrid.length - 1);
return swiper.slideTo(index, speed, runCallbacks, internal);
}
function slideToClickedSlide() {
const swiper = this;
const {params, $wrapperEl} = swiper;
const slidesPerView = "auto" === params.slidesPerView ?
swiper.slidesPerViewDynamic() : params.slidesPerView;
let slideToIndex = swiper.clickedIndex;
let realIndex;
if (params.loop) {
if (swiper.animating) return;
realIndex = parseInt(dom(swiper.clickedSlide).attr("data-swiper-slide-index"), 10);
if (params.centeredSlides) if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||
slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
swiper.loopFix();
slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-
index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
utils_nextTick((() => {
swiper.slideTo(slideToIndex);
}));
} else swiper.slideTo(slideToIndex); else if (slideToIndex > swiper.slides.length -
slidesPerView) {
swiper.loopFix();
slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-
index="${realIndex}"]:not(.${params.slideDuplicateClass})`).eq(0).index();
utils_nextTick((() => {
swiper.slideTo(slideToIndex);
}));
} else swiper.slideTo(slideToIndex);
} else swiper.slideTo(slideToIndex);
}
const slide = {
slideTo,
slideToLoop,
slideNext,
slidePrev,
slideReset,
slideToClosest,
slideToClickedSlide
};
function loopCreate() {
const swiper = this;
const document = ssr_window_esm_getDocument();
const {params, $wrapperEl} = swiper;
const $selector = $wrapperEl.children().length > 0 ?
dom($wrapperEl.children()[0].parentNode) : $wrapperEl;
$selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
let slides = $selector.children(`.${params.slideClass}`);
if (params.loopFillGroupWithBlank) {
const blankSlidesNum = params.slidesPerGroup - slides.length %
params.slidesPerGroup;
if (blankSlidesNum !== params.slidesPerGroup) {
for (let i = 0; i < blankSlidesNum; i += 1) {
const blankNode =
dom(document.createElement("div")).addClass(`${params.slideClass}
${params.slideBlankClass}`);
$selector.append(blankNode);
}
slides = $selector.children(`.${params.slideClass}`);
}
}
if ("auto" === params.slidesPerView && !params.loopedSlides) params.loopedSlides =
slides.length;
swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides ||
params.slidesPerView, 10));
swiper.loopedSlides += params.loopAdditionalSlides;
if (swiper.loopedSlides > slides.length) swiper.loopedSlides = slides.length;
const prependSlides = [];
const appendSlides = [];
slides.each(((el, index) => {
const slide = dom(el);
if (index < swiper.loopedSlides) appendSlides.push(el);
if (index < slides.length && index >= slides.length - swiper.loopedSlides)
prependSlides.push(el);
slide.attr("data-swiper-slide-index", index);
}));
for (let i = 0; i < appendSlides.length; i += 1)
$selector.append(dom(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateCla
ss));
for (let i = prependSlides.length - 1; i >= 0; i -= 1)
$selector.prepend(dom(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateCl
ass));
}
function loopFix() {
const swiper = this;
swiper.emit("beforeLoopFix");
const {activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid,
rtlTranslate: rtl} = swiper;
let newIndex;
swiper.allowSlidePrev = true;
swiper.allowSlideNext = true;
const snapTranslate = -snapGrid[activeIndex];
const diff = snapTranslate - swiper.getTranslate();
if (activeIndex < loopedSlides) {
newIndex = slides.length - 3 * loopedSlides + activeIndex;
newIndex += loopedSlides;
const slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (slideChanged && 0 !== diff) swiper.setTranslate((rtl ? -swiper.translate :
swiper.translate) - diff);
} else if (activeIndex >= slides.length - loopedSlides) {
newIndex = -slides.length + activeIndex + loopedSlides;
newIndex += loopedSlides;
const slideChanged = swiper.slideTo(newIndex, 0, false, true);
if (slideChanged && 0 !== diff) swiper.setTranslate((rtl ? -swiper.translate :
swiper.translate) - diff);
}
swiper.allowSlidePrev = allowSlidePrev;
swiper.allowSlideNext = allowSlideNext;
swiper.emit("loopFix");
}
function loopDestroy() {
const swiper = this;
const {$wrapperEl, params, slides} = swiper;
$wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideCla
ss}.${params.slideBlankClass}`).remove();
slides.removeAttr("data-swiper-slide-index");
}
const loop = {
loopCreate,
loopFix,
loopDestroy
};
function setGrabCursor(moving) {
const swiper = this;
if (swiper.support.touch || !swiper.params.simulateTouch ||
swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
const el = "container" === swiper.params.touchEventsTarget ? swiper.el :
swiper.wrapperEl;
el.style.cursor = "move";
el.style.cursor = moving ? "grabbing" : "grab";
}
function unsetGrabCursor() {
const swiper = this;
if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked ||
swiper.params.cssMode) return;
swiper["container" === swiper.params.touchEventsTarget ? "el" :
"wrapperEl"].style.cursor = "";
}
const grab_cursor = {
setGrabCursor,
unsetGrabCursor
};
function closestElement(selector, base) {
if (void 0 === base) base = this;
function __closestFrom(el) {
if (!el || el === ssr_window_esm_getDocument() || el ===
ssr_window_esm_getWindow()) return null;
if (el.assignedSlot) el = el.assignedSlot;
const found = el.closest(selector);
if (!found && !el.getRootNode) return null;
return found || __closestFrom(el.getRootNode().host);
}
return __closestFrom(base);
}
function onTouchStart(event) {
const swiper = this;
const document = ssr_window_esm_getDocument();
const window = ssr_window_esm_getWindow();
const data = swiper.touchEventsData;
const {params, touches, enabled} = swiper;
if (!enabled) return;
if (swiper.animating && params.preventInteractionOnTransition) return;
if (!swiper.animating && params.cssMode && params.loop) swiper.loopFix();
let e = event;
if (e.originalEvent) e = e.originalEvent;
let $targetEl = dom(e.target);
if ("wrapper" === params.touchEventsTarget) if
(!$targetEl.closest(swiper.wrapperEl).length) return;
data.isTouchEvent = "touchstart" === e.type;
if (!data.isTouchEvent && "which" in e && 3 === e.which) return;
if (!data.isTouchEvent && "button" in e && e.button > 0) return;
if (data.isTouched && data.isMoved) return;
const swipingClassHasValue = !!params.noSwipingClass && "" !==
params.noSwipingClass;
if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path &&
event.path[0]) $targetEl = dom(event.path[0]);
const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector :
`.${params.noSwipingClass}`;
const isTargetShadow = !!(e.target && e.target.shadowRoot);
if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector,
$targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {
swiper.allowClick = true;
return;
}
if (params.swipeHandler) if (!$targetEl.closest(params.swipeHandler)[0]) return;
touches.currentX = "touchstart" === e.type ? e.targetTouches[0].pageX : e.pageX;
touches.currentY = "touchstart" === e.type ? e.targetTouches[0].pageY : e.pageY;
const startX = touches.currentX;
const startY = touches.currentY;
const edgeSwipeDetection = params.edgeSwipeDetection ||
params.iOSEdgeSwipeDetection;
const edgeSwipeThreshold = params.edgeSwipeThreshold ||
params.iOSEdgeSwipeThreshold;
if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >=
window.innerWidth - edgeSwipeThreshold)) if ("prevent" === edgeSwipeDetection)
event.preventDefault(); else return;
Object.assign(data, {
isTouched: true,
isMoved: false,
allowTouchCallbacks: true,
isScrolling: void 0,
startMoving: void 0
});
touches.startX = startX;
touches.startY = startY;
data.touchStartTime = utils_now();
swiper.allowClick = true;
swiper.updateSize();
swiper.swipeDirection = void 0;
if (params.threshold > 0) data.allowThresholdMove = false;
if ("touchstart" !== e.type) {
let preventDefault = true;
if ($targetEl.is(data.focusableElements)) {
preventDefault = false;
if ("SELECT" === $targetEl[0].nodeName) data.isTouched = false;
}
if (document.activeElement &&
dom(document.activeElement).is(data.focusableElements) && document.activeElement !==
$targetEl[0]) document.activeElement.blur();
const shouldPreventDefault = preventDefault && swiper.allowTouchMove &&
params.touchStartPreventDefault;
if ((params.touchStartForcePreventDefault || shouldPreventDefault)
&& !$targetEl[0].isContentEditable) e.preventDefault();
}
if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode
&& swiper.animating && !params.cssMode) swiper.freeMode.onTouchStart();
swiper.emit("touchStart", e);
}
function onTouchMove(event) {
const document = ssr_window_esm_getDocument();
const swiper = this;
const data = swiper.touchEventsData;
const {params, touches, rtlTranslate: rtl, enabled} = swiper;
if (!enabled) return;
let e = event;
if (e.originalEvent) e = e.originalEvent;
if (!data.isTouched) {
if (data.startMoving && data.isScrolling) swiper.emit("touchMoveOpposite", e);
return;
}
if (data.isTouchEvent && "touchmove" !== e.type) return;
const targetTouch = "touchmove" === e.type && e.targetTouches &&
(e.targetTouches[0] || e.changedTouches[0]);
const pageX = "touchmove" === e.type ? targetTouch.pageX : e.pageX;
const pageY = "touchmove" === e.type ? targetTouch.pageY : e.pageY;
if (e.preventedByNestedSwiper) {
touches.startX = pageX;
touches.startY = pageY;
return;
}
if (!swiper.allowTouchMove) {
if (!dom(e.target).is(data.focusableElements)) swiper.allowClick = false;
if (data.isTouched) {
Object.assign(touches, {
startX: pageX,
startY: pageY,
currentX: pageX,
currentY: pageY
});
data.touchStartTime = utils_now();
}
return;
}
if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) if
(swiper.isVertical()) {
if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY >
touches.startY && swiper.translate >= swiper.minTranslate()) {
data.isTouched = false;
data.isMoved = false;
return;
}
} else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() ||
pageX > touches.startX && swiper.translate >= swiper.minTranslate()) return;
if (data.isTouchEvent && document.activeElement) if (e.target ===
document.activeElement && dom(e.target).is(data.focusableElements)) {
data.isMoved = true;
swiper.allowClick = false;
return;
}
if (data.allowTouchCallbacks) swiper.emit("touchMove", e);
if (e.targetTouches && e.targetTouches.length > 1) return;
touches.currentX = pageX;
touches.currentY = pageY;
const diffX = touches.currentX - touches.startX;
const diffY = touches.currentY - touches.startY;
if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) <
swiper.params.threshold) return;
if ("undefined" === typeof data.isScrolling) {
let touchAngle;
if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical()
&& touches.currentX === touches.startX) data.isScrolling = false; else if (diffX * diffX + diffY *
diffY >= 25) {
touchAngle = 180 * Math.atan2(Math.abs(diffY), Math.abs(diffX)) / Math.PI;
data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 -
touchAngle > params.touchAngle;
}
}
if (data.isScrolling) swiper.emit("touchMoveOpposite", e);
if ("undefined" === typeof data.startMoving) if (touches.currentX !== touches.startX ||
touches.currentY !== touches.startY) data.startMoving = true;
if (data.isScrolling) {
data.isTouched = false;
return;
}
if (!data.startMoving) return;
swiper.allowClick = false;
if (!params.cssMode && e.cancelable) e.preventDefault();
if (params.touchMoveStopPropagation && !params.nested) e.stopPropagation();
if (!data.isMoved) {
if (params.loop && !params.cssMode) swiper.loopFix();
data.startTranslate = swiper.getTranslate();
swiper.setTransition(0);
if (swiper.animating) swiper.$wrapperEl.trigger("webkitTransitionEnd transitionend");
data.allowMomentumBounce = false;
if (params.grabCursor && (true === swiper.allowSlideNext || true ===
swiper.allowSlidePrev)) swiper.setGrabCursor(true);
swiper.emit("sliderFirstMove", e);
}
swiper.emit("sliderMove", e);
data.isMoved = true;
let diff = swiper.isHorizontal() ? diffX : diffY;
touches.diff = diff;
diff *= params.touchRatio;
if (rtl) diff = -diff;
swiper.swipeDirection = diff > 0 ? "prev" : "next";
data.currentTranslate = diff + data.startTranslate;
let disableParentSwiper = true;
let resistanceRatio = params.resistanceRatio;
if (params.touchReleaseOnEdges) resistanceRatio = 0;
if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {
disableParentSwiper = false;
if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-
swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
} else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {
disableParentSwiper = false;
if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 -
(swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
}
if (disableParentSwiper) e.preventedByNestedSwiper = true;
if (!swiper.allowSlideNext && "next" === swiper.swipeDirection &&
data.currentTranslate < data.startTranslate) data.currentTranslate = data.startTranslate;
if (!swiper.allowSlidePrev && "prev" === swiper.swipeDirection &&
data.currentTranslate > data.startTranslate) data.currentTranslate = data.startTranslate;
if (!swiper.allowSlidePrev && !swiper.allowSlideNext) data.currentTranslate =
data.startTranslate;
if (params.threshold > 0) if (Math.abs(diff) > params.threshold ||
data.allowThresholdMove) {
if (!data.allowThresholdMove) {
data.allowThresholdMove = true;
touches.startX = touches.currentX;
touches.startY = touches.currentY;
data.currentTranslate = data.startTranslate;
touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX :
touches.currentY - touches.startY;
return;
}
} else {
data.currentTranslate = data.startTranslate;
return;
}
if (!params.followFinger || params.cssMode) return;
if (params.freeMode && params.freeMode.enabled && swiper.freeMode ||
params.watchSlidesProgress) {
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode)
swiper.freeMode.onTouchMove();
swiper.updateProgress(data.currentTranslate);
swiper.setTranslate(data.currentTranslate);
}
function onTouchEnd(event) {
const swiper = this;
const data = swiper.touchEventsData;
const {params, touches, rtlTranslate: rtl, slidesGrid, enabled} = swiper;
if (!enabled) return;
let e = event;
if (e.originalEvent) e = e.originalEvent;
if (data.allowTouchCallbacks) swiper.emit("touchEnd", e);
data.allowTouchCallbacks = false;
if (!data.isTouched) {
if (data.isMoved && params.grabCursor) swiper.setGrabCursor(false);
data.isMoved = false;
data.startMoving = false;
return;
}
if (params.grabCursor && data.isMoved && data.isTouched && (true ===
swiper.allowSlideNext || true === swiper.allowSlidePrev)) swiper.setGrabCursor(false);
const touchEndTime = utils_now();
const timeDiff = touchEndTime - data.touchStartTime;
if (swiper.allowClick) {
const pathTree = e.path || e.composedPath && e.composedPath();
swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);
swiper.emit("tap click", e);
if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300)
swiper.emit("doubleTap doubleClick", e);
}
data.lastClickTime = utils_now();
utils_nextTick((() => {
if (!swiper.destroyed) swiper.allowClick = true;
}));
if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || 0 === touches.diff ||
data.currentTranslate === data.startTranslate) {
data.isTouched = false;
data.isMoved = false;
data.startMoving = false;
return;
}
data.isTouched = false;
data.isMoved = false;
data.startMoving = false;
let currentPos;
if (params.followFinger) currentPos = rtl ? swiper.translate : -swiper.translate; else
currentPos = -data.currentTranslate;
if (params.cssMode) return;
if (swiper.params.freeMode && params.freeMode.enabled) {
swiper.freeMode.onTouchEnd({
currentPos
});
return;
}
let stopIndex = 0;
let groupSize = swiper.slidesSizesGrid[0];
for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 :
params.slidesPerGroup) {
const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
if ("undefined" !== typeof slidesGrid[i + increment]) {
if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
stopIndex = i;
groupSize = slidesGrid[i + increment] - slidesGrid[i];
}
} else if (currentPos >= slidesGrid[i]) {
stopIndex = i;
groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
}
}
let rewindFirstIndex = null;
let rewindLastIndex = null;
if (params.rewind) if (swiper.isBeginning) rewindLastIndex = swiper.params.virtual &&
swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 :
swiper.slides.length - 1; else if (swiper.isEnd) rewindFirstIndex = 0;
const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 :
params.slidesPerGroup;
if (timeDiff > params.longSwipesMs) {
if (!params.longSwipes) {
swiper.slideTo(swiper.activeIndex);
return;
}
if ("next" === swiper.swipeDirection) if (ratio >= params.longSwipesRatio)
swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);
else swiper.slideTo(stopIndex);
if ("prev" === swiper.swipeDirection) if (ratio > 1 - params.longSwipesRatio)
swiper.slideTo(stopIndex + increment); else if (null !== rewindLastIndex && ratio < 0 &&
Math.abs(ratio) > params.longSwipesRatio) swiper.slideTo(rewindLastIndex); else
swiper.slideTo(stopIndex);
} else {
if (!params.shortSwipes) {
swiper.slideTo(swiper.activeIndex);
return;
}
const isNavButtonTarget = swiper.navigation && (e.target ===
swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
if (!isNavButtonTarget) {
if ("next" === swiper.swipeDirection) swiper.slideTo(null !== rewindFirstIndex ?
rewindFirstIndex : stopIndex + increment);
if ("prev" === swiper.swipeDirection) swiper.slideTo(null !== rewindLastIndex ?
rewindLastIndex : stopIndex);
} else if (e.target === swiper.navigation.nextEl) swiper.slideTo(stopIndex + increment);
else swiper.slideTo(stopIndex);
}
}
function onResize() {
const swiper = this;
const {params, el} = swiper;
if (el && 0 === el.offsetWidth) return;
if (params.breakpoints) swiper.setBreakpoint();
const {allowSlideNext, allowSlidePrev, snapGrid} = swiper;
swiper.allowSlideNext = true;
swiper.allowSlidePrev = true;
swiper.updateSize();
swiper.updateSlides();
swiper.updateSlidesClasses();
if (("auto" === params.slidesPerView || params.slidesPerView > 1) && swiper.isEnd
&& !swiper.isBeginning && !swiper.params.centeredSlides)
swiper.slideTo(swiper.slides.length - 1, 0, false, true); else swiper.slideTo(swiper.activeIndex,
0, false, true);
if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused)
swiper.autoplay.run();
swiper.allowSlidePrev = allowSlidePrev;
swiper.allowSlideNext = allowSlideNext;
if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid)
swiper.checkOverflow();
}
function onClick(e) {
const swiper = this;
if (!swiper.enabled) return;
if (!swiper.allowClick) {
if (swiper.params.preventClicks) e.preventDefault();
if (swiper.params.preventClicksPropagation && swiper.animating) {
e.stopPropagation();
e.stopImmediatePropagation();
}
}
}
function onScroll() {
const swiper = this;
const {wrapperEl, rtlTranslate, enabled} = swiper;
if (!enabled) return;
swiper.previousTranslate = swiper.translate;
if (swiper.isHorizontal()) swiper.translate = -wrapperEl.scrollLeft; else swiper.translate =
-wrapperEl.scrollTop;
if (0 === swiper.translate) swiper.translate = 0;
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
let newProgress;
const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
if (0 === translatesDiff) newProgress = 0; else newProgress = (swiper.translate -
swiper.minTranslate()) / translatesDiff;
if (newProgress !== swiper.progress) swiper.updateProgress(rtlTranslate ? -
swiper.translate : swiper.translate);
swiper.emit("setTranslate", swiper.translate, false);
}
let dummyEventAttached = false;
function dummyEventListener() {}
const events = (swiper, method) => {
const document = ssr_window_esm_getDocument();
const {params, touchEvents, el, wrapperEl, device, support} = swiper;
const capture = !!params.nested;
const domMethod = "on" === method ? "addEventListener" : "removeEventListener";
const swiperMethod = method;
if (!support.touch) {
el[domMethod](touchEvents.start, swiper.onTouchStart, false);
document[domMethod](touchEvents.move, swiper.onTouchMove, capture);
document[domMethod](touchEvents.end, swiper.onTouchEnd, false);
} else {
const passiveListener = "touchstart" === touchEvents.start &&
support.passiveListener && params.passiveListeners ? {
passive: true,
capture: false
} : false;
el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);
el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {
passive: false,
capture
} : capture);
el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);
if (touchEvents.cancel) el[domMethod](touchEvents.cancel, swiper.onTouchEnd,
passiveListener);
}
if (params.preventClicks || params.preventClicksPropagation) el[domMethod]("click",
swiper.onClick, true);
if (params.cssMode) wrapperEl[domMethod]("scroll", swiper.onScroll);
if (params.updateOnWindowResize) swiper[swiperMethod](device.ios ||
device.android ? "resize orientationchange observerUpdate" : "resize observerUpdate",
onResize, true); else swiper[swiperMethod]("observerUpdate", onResize, true);
};
function attachEvents() {
const swiper = this;
const document = ssr_window_esm_getDocument();
const {params, support} = swiper;
swiper.onTouchStart = onTouchStart.bind(swiper);
swiper.onTouchMove = onTouchMove.bind(swiper);
swiper.onTouchEnd = onTouchEnd.bind(swiper);
if (params.cssMode) swiper.onScroll = onScroll.bind(swiper);
swiper.onClick = onClick.bind(swiper);
if (support.touch && !dummyEventAttached) {
document.addEventListener("touchstart", dummyEventListener);
dummyEventAttached = true;
}
events(swiper, "on");
}
function detachEvents() {
const swiper = this;
events(swiper, "off");
}
const core_events = {
attachEvents,
detachEvents
};
const isGridEnabled = (swiper, params) => swiper.grid && params.grid &&
params.grid.rows > 1;
function setBreakpoint() {
const swiper = this;
const {activeIndex, initialized, loopedSlides = 0, params, $el} = swiper;
const breakpoints = params.breakpoints;
if (!breakpoints || breakpoints && 0 === Object.keys(breakpoints).length) return;
const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase,
swiper.el);
if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] :
void 0;
const breakpointParams = breakpointOnlyParams || swiper.originalParams;
const wasMultiRow = isGridEnabled(swiper, params);
const isMultiRow = isGridEnabled(swiper, breakpointParams);
const wasEnabled = params.enabled;
if (wasMultiRow && !isMultiRow) {
$el.removeClass(`${params.containerModifierClass}grid
${params.containerModifierClass}grid-column`);
swiper.emitContainerClasses();
} else if (!wasMultiRow && isMultiRow) {
$el.addClass(`${params.containerModifierClass}grid`);
if (breakpointParams.grid.fill && "column" === breakpointParams.grid.fill
|| !breakpointParams.grid.fill && "column" === params.grid.fill)
$el.addClass(`${params.containerModifierClass}grid-column`);
swiper.emitContainerClasses();
}
[ "navigation", "pagination", "scrollbar" ].forEach((prop => {
const wasModuleEnabled = params[prop] && params[prop].enabled;
const isModuleEnabled = breakpointParams[prop] &&
breakpointParams[prop].enabled;
if (wasModuleEnabled && !isModuleEnabled) swiper[prop].disable();
if (!wasModuleEnabled && isModuleEnabled) swiper[prop].enable();
}));
const directionChanged = breakpointParams.direction &&
breakpointParams.direction !== params.direction;
const needsReLoop = params.loop && (breakpointParams.slidesPerView !==
params.slidesPerView || directionChanged);
if (directionChanged && initialized) swiper.changeDirection();
utils_extend(swiper.params, breakpointParams);
const isEnabled = swiper.params.enabled;
Object.assign(swiper, {
allowTouchMove: swiper.params.allowTouchMove,
allowSlideNext: swiper.params.allowSlideNext,
allowSlidePrev: swiper.params.allowSlidePrev
});
if (wasEnabled && !isEnabled) swiper.disable(); else if (!wasEnabled && isEnabled)
swiper.enable();
swiper.currentBreakpoint = breakpoint;
swiper.emit("_beforeBreakpoint", breakpointParams);
if (needsReLoop && initialized) {
swiper.loopDestroy();
swiper.loopCreate();
swiper.updateSlides();
swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);
}
swiper.emit("breakpoint", breakpointParams);
}
function getBreakpoint(breakpoints, base, containerEl) {
if (void 0 === base) base = "window";
if (!breakpoints || "container" === base && !containerEl) return;
let breakpoint = false;
const window = ssr_window_esm_getWindow();
const currentHeight = "window" === base ? window.innerHeight :
containerEl.clientHeight;
const points = Object.keys(breakpoints).map((point => {
if ("string" === typeof point && 0 === point.indexOf("@")) {
const minRatio = parseFloat(point.substr(1));
const value = currentHeight * minRatio;
return {
value,
point
};
}
return {
value: point,
point
};
}));
points.sort(((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10)));
for (let i = 0; i < points.length; i += 1) {
const {point, value} = points[i];
if ("window" === base) {
if (window.matchMedia(`(min-width: ${value}px)`).matches) breakpoint = point;
} else if (value <= containerEl.clientWidth) breakpoint = point;
}
return breakpoint || "max";
}
const breakpoints = {
setBreakpoint,
getBreakpoint
};
function prepareClasses(entries, prefix) {
const resultClasses = [];
entries.forEach((item => {
if ("object" === typeof item) Object.keys(item).forEach((classNames => {
if (item[classNames]) resultClasses.push(prefix + classNames);
})); else if ("string" === typeof item) resultClasses.push(prefix + item);
}));
return resultClasses;
}
function addClasses() {
const swiper = this;
const {classNames, params, rtl, $el, device, support} = swiper;
const suffixes = prepareClasses([ "initialized", params.direction, {
"pointer-events": !support.touch
}, {
"free-mode": swiper.params.freeMode && params.freeMode.enabled
}, {
autoheight: params.autoHeight
}, {
rtl
}, {
grid: params.grid && params.grid.rows > 1
}, {
"grid-column": params.grid && params.grid.rows > 1 && "column" ===
params.grid.fill
}, {
android: device.android
}, {
ios: device.ios
}, {
"css-mode": params.cssMode
}, {
centered: params.cssMode && params.centeredSlides
}, {
"watch-progress": params.watchSlidesProgress
} ], params.containerModifierClass);
classNames.push(...suffixes);
$el.addClass([ ...classNames ].join(" "));
swiper.emitContainerClasses();
}
function removeClasses_removeClasses() {
const swiper = this;
const {$el, classNames} = swiper;
$el.removeClass(classNames.join(" "));
swiper.emitContainerClasses();
}
const classes = {
addClasses,
removeClasses: removeClasses_removeClasses
};
function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {
const window = ssr_window_esm_getWindow();
let image;
function onReady() {
if (callback) callback();
}
const isPicture = dom(imageEl).parent("picture")[0];
if (!isPicture && (!imageEl.complete || !checkForComplete)) if (src) {
image = new window.Image;
image.onload = onReady;
image.onerror = onReady;
if (sizes) image.sizes = sizes;
if (srcset) image.srcset = srcset;
if (src) image.src = src;
} else onReady(); else onReady();
}
function preloadImages() {
const swiper = this;
swiper.imagesToLoad = swiper.$el.find("img");
function onReady() {
if ("undefined" === typeof swiper || null === swiper || !swiper || swiper.destroyed)
return;
if (void 0 !== swiper.imagesLoaded) swiper.imagesLoaded += 1;
if (swiper.imagesLoaded === swiper.imagesToLoad.length) {
if (swiper.params.updateOnImagesReady) swiper.update();
swiper.emit("imagesReady");
}
}
for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {
const imageEl = swiper.imagesToLoad[i];
swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute("src"),
imageEl.srcset || imageEl.getAttribute("srcset"), imageEl.sizes ||
imageEl.getAttribute("sizes"), true, onReady);
}
}
const core_images = {
loadImage,
preloadImages
};
function checkOverflow() {
const swiper = this;
const {isLocked: wasLocked, params} = swiper;
const {slidesOffsetBefore} = params;
if (slidesOffsetBefore) {
const lastSlideIndex = swiper.slides.length - 1;
const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] +
swiper.slidesSizesGrid[lastSlideIndex] + 2 * slidesOffsetBefore;
swiper.isLocked = swiper.size > lastSlideRightEdge;
} else swiper.isLocked = 1 === swiper.snapGrid.length;
if (true === params.allowSlideNext) swiper.allowSlideNext = !swiper.isLocked;
if (true === params.allowSlidePrev) swiper.allowSlidePrev = !swiper.isLocked;
if (wasLocked && wasLocked !== swiper.isLocked) swiper.isEnd = false;
if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? "lock" : "unlock");
}
const check_overflow = {
checkOverflow
};
const defaults = {
init: true,
direction: "horizontal",
touchEventsTarget: "wrapper",
initialSlide: 0,
speed: 300,
cssMode: false,
updateOnWindowResize: true,
resizeObserver: true,
nested: false,
createElements: false,
enabled: true,
focusableElements: "input, select, option, textarea, button, video, label",
width: null,
height: null,
preventInteractionOnTransition: false,
userAgent: null,
url: null,
edgeSwipeDetection: false,
edgeSwipeThreshold: 20,
autoHeight: false,
setWrapperSize: false,
virtualTranslate: false,
effect: "slide",
breakpoints: void 0,
breakpointsBase: "window",
spaceBetween: 0,
slidesPerView: 1,
slidesPerGroup: 1,
slidesPerGroupSkip: 0,
slidesPerGroupAuto: false,
centeredSlides: false,
centeredSlidesBounds: false,
slidesOffsetBefore: 0,
slidesOffsetAfter: 0,
normalizeSlideIndex: true,
centerInsufficientSlides: false,
watchOverflow: true,
roundLengths: false,
touchRatio: 1,
touchAngle: 45,
simulateTouch: true,
shortSwipes: true,
longSwipes: true,
longSwipesRatio: .5,
longSwipesMs: 300,
followFinger: true,
allowTouchMove: true,
threshold: 0,
touchMoveStopPropagation: false,
touchStartPreventDefault: true,
touchStartForcePreventDefault: false,
touchReleaseOnEdges: false,
uniqueNavElements: true,
resistance: true,
resistanceRatio: .85,
watchSlidesProgress: false,
grabCursor: false,
preventClicks: true,
preventClicksPropagation: true,
slideToClickedSlide: false,
preloadImages: true,
updateOnImagesReady: true,
loop: false,
loopAdditionalSlides: 0,
loopedSlides: null,
loopFillGroupWithBlank: false,
loopPreventsSlide: true,
rewind: false,
allowSlidePrev: true,
allowSlideNext: true,
swipeHandler: null,
noSwiping: true,
noSwipingClass: "swiper-no-swiping",
noSwipingSelector: null,
passiveListeners: true,
maxBackfaceHiddenSlides: 10,
containerModifierClass: "swiper-",
slideClass: "swiper-slide",
slideBlankClass: "swiper-slide-invisible-blank",
slideActiveClass: "swiper-slide-active",
slideDuplicateActiveClass: "swiper-slide-duplicate-active",
slideVisibleClass: "swiper-slide-visible",
slideDuplicateClass: "swiper-slide-duplicate",
slideNextClass: "swiper-slide-next",
slideDuplicateNextClass: "swiper-slide-duplicate-next",
slidePrevClass: "swiper-slide-prev",
slideDuplicatePrevClass: "swiper-slide-duplicate-prev",
wrapperClass: "swiper-wrapper",
runCallbacksOnInit: true,
_emitClasses: false
};
function moduleExtendParams(params, allModulesParams) {
return function extendParams(obj) {
if (void 0 === obj) obj = {};
const moduleParamName = Object.keys(obj)[0];
const moduleParams = obj[moduleParamName];
if ("object" !== typeof moduleParams || null === moduleParams) {
utils_extend(allModulesParams, obj);
return;
}
if ([ "navigation", "pagination", "scrollbar" ].indexOf(moduleParamName) >= 0 &&
true === params[moduleParamName]) params[moduleParamName] = {
auto: true
};
if (!(moduleParamName in params && "enabled" in moduleParams)) {
utils_extend(allModulesParams, obj);
return;
}
if (true === params[moduleParamName]) params[moduleParamName] = {
enabled: true
};
if ("object" === typeof params[moduleParamName] && !("enabled" in
params[moduleParamName])) params[moduleParamName].enabled = true;
if (!params[moduleParamName]) params[moduleParamName] = {
enabled: false
};
utils_extend(allModulesParams, obj);
};
}
const prototypes = {
eventsEmitter: events_emitter,
update,
translate,
transition: core_transition,
slide,
loop,
grabCursor: grab_cursor,
events: core_events,
breakpoints,
checkOverflow: check_overflow,
classes,
images: core_images
};
const extendedDefaults = {};
class core_Swiper {
constructor() {
let el;
let params;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len;
_key++) args[_key] = arguments[_key];
if (1 === args.length && args[0].constructor && "Object" ===
Object.prototype.toString.call(args[0]).slice(8, -1)) params = args[0]; else [el, params] = args;
if (!params) params = {};
params = utils_extend({}, params);
if (el && !params.el) params.el = el;
if (params.el && dom(params.el).length > 1) {
const swipers = [];
dom(params.el).each((containerEl => {
const newParams = utils_extend({}, params, {
el: containerEl
});
swipers.push(new core_Swiper(newParams));
}));
return swipers;
}
const swiper = this;
swiper.__swiper__ = true;
swiper.support = getSupport();
swiper.device = getDevice({
userAgent: params.userAgent
});
swiper.browser = getBrowser();
swiper.eventsListeners = {};
swiper.eventsAnyListeners = [];
swiper.modules = [ ...swiper.__modules__ ];
if (params.modules && Array.isArray(params.modules))
swiper.modules.push(...params.modules);
const allModulesParams = {};
swiper.modules.forEach((mod => {
mod({
swiper,
extendParams: moduleExtendParams(params, allModulesParams),
on: swiper.on.bind(swiper),
once: swiper.once.bind(swiper),
off: swiper.off.bind(swiper),
emit: swiper.emit.bind(swiper)
});
}));
const swiperParams = utils_extend({}, defaults, allModulesParams);
swiper.params = utils_extend({}, swiperParams, extendedDefaults, params);
swiper.originalParams = utils_extend({}, swiper.params);
swiper.passedParams = utils_extend({}, params);
if (swiper.params && swiper.params.on)
Object.keys(swiper.params.on).forEach((eventName => {
swiper.on(eventName, swiper.params.on[eventName]);
}));
if (swiper.params && swiper.params.onAny) swiper.onAny(swiper.params.onAny);
swiper.$ = dom;
Object.assign(swiper, {
enabled: swiper.params.enabled,
el,
classNames: [],
slides: dom(),
slidesGrid: [],
snapGrid: [],
slidesSizesGrid: [],
isHorizontal() {
return "horizontal" === swiper.params.direction;
},
isVertical() {
return "vertical" === swiper.params.direction;
},
activeIndex: 0,
realIndex: 0,
isBeginning: true,
isEnd: false,
translate: 0,
previousTranslate: 0,
progress: 0,
velocity: 0,
animating: false,
allowSlideNext: swiper.params.allowSlideNext,
allowSlidePrev: swiper.params.allowSlidePrev,
touchEvents: function touchEvents() {
const touch = [ "touchstart", "touchmove", "touchend", "touchcancel" ];
const desktop = [ "pointerdown", "pointermove", "pointerup" ];
swiper.touchEventsTouch = {
start: touch[0],
move: touch[1],
end: touch[2],
cancel: touch[3]
};
swiper.touchEventsDesktop = {
start: desktop[0],
move: desktop[1],
end: desktop[2]
};
return swiper.support.touch || !swiper.params.simulateTouch ?
swiper.touchEventsTouch : swiper.touchEventsDesktop;
}(),
touchEventsData: {
isTouched: void 0,
isMoved: void 0,
allowTouchCallbacks: void 0,
touchStartTime: void 0,
isScrolling: void 0,
currentTranslate: void 0,
startTranslate: void 0,
allowThresholdMove: void 0,
focusableElements: swiper.params.focusableElements,
lastClickTime: utils_now(),
clickTimeout: void 0,
velocities: [],
allowMomentumBounce: void 0,
isTouchEvent: void 0,
startMoving: void 0
},
allowClick: true,
allowTouchMove: swiper.params.allowTouchMove,
touches: {
startX: 0,
startY: 0,
currentX: 0,
currentY: 0,
diff: 0
},
imagesToLoad: [],
imagesLoaded: 0
});
swiper.emit("_swiper");
if (swiper.params.init) swiper.init();
return swiper;
}
enable() {
const swiper = this;
if (swiper.enabled) return;
swiper.enabled = true;
if (swiper.params.grabCursor) swiper.setGrabCursor();
swiper.emit("enable");
}
disable() {
const swiper = this;
if (!swiper.enabled) return;
swiper.enabled = false;
if (swiper.params.grabCursor) swiper.unsetGrabCursor();
swiper.emit("disable");
}
setProgress(progress, speed) {
const swiper = this;
progress = Math.min(Math.max(progress, 0), 1);
const min = swiper.minTranslate();
const max = swiper.maxTranslate();
const current = (max - min) * progress + min;
swiper.translateTo(current, "undefined" === typeof speed ? 0 : speed);
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
emitContainerClasses() {
const swiper = this;
if (!swiper.params._emitClasses || !swiper.el) return;
const cls = swiper.el.className.split(" ").filter((className => 0 ===
className.indexOf("swiper") || 0 ===
className.indexOf(swiper.params.containerModifierClass)));
swiper.emit("_containerClasses", cls.join(" "));
}
getSlideClasses(slideEl) {
const swiper = this;
if (swiper.destroyed) return "";
return slideEl.className.split(" ").filter((className => 0 ===
className.indexOf("swiper-slide") || 0 ===
className.indexOf(swiper.params.slideClass))).join(" ");
}
emitSlidesClasses() {
const swiper = this;
if (!swiper.params._emitClasses || !swiper.el) return;
const updates = [];
swiper.slides.each((slideEl => {
const classNames = swiper.getSlideClasses(slideEl);
updates.push({
slideEl,
classNames
});
swiper.emit("_slideClass", slideEl, classNames);
}));
swiper.emit("_slideClasses", updates);
}
slidesPerViewDynamic(view, exact) {
if (void 0 === view) view = "current";
if (void 0 === exact) exact = false;
const swiper = this;
const {params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex} =
swiper;
let spv = 1;
if (params.centeredSlides) {
let slideSize = slides[activeIndex].swiperSlideSize;
let breakLoop;
for (let i = activeIndex + 1; i < slides.length; i += 1) if (slides[i] && !breakLoop) {
slideSize += slides[i].swiperSlideSize;
spv += 1;
if (slideSize > swiperSize) breakLoop = true;
}
for (let i = activeIndex - 1; i >= 0; i -= 1) if (slides[i] && !breakLoop) {
slideSize += slides[i].swiperSlideSize;
spv += 1;
if (slideSize > swiperSize) breakLoop = true;
}
} else if ("current" === view) for (let i = activeIndex + 1; i < slides.length; i += 1) {
const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex]
< swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
if (slideInView) spv += 1;
} else for (let i = activeIndex - 1; i >= 0; i -= 1) {
const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
if (slideInView) spv += 1;
}
return spv;
}
update() {
const swiper = this;
if (!swiper || swiper.destroyed) return;
const {snapGrid, params} = swiper;
if (params.breakpoints) swiper.setBreakpoint();
swiper.updateSize();
swiper.updateSlides();
swiper.updateProgress();
swiper.updateSlidesClasses();
function setTranslate() {
const translateValue = swiper.rtlTranslate ? -1 * swiper.translate : swiper.translate;
const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()),
swiper.minTranslate());
swiper.setTranslate(newTranslate);
swiper.updateActiveIndex();
swiper.updateSlidesClasses();
}
let translated;
if (swiper.params.freeMode && swiper.params.freeMode.enabled) {
setTranslate();
if (swiper.params.autoHeight) swiper.updateAutoHeight();
} else {
if (("auto" === swiper.params.slidesPerView || swiper.params.slidesPerView > 1)
&& swiper.isEnd && !swiper.params.centeredSlides) translated =
swiper.slideTo(swiper.slides.length - 1, 0, false, true); else translated =
swiper.slideTo(swiper.activeIndex, 0, false, true);
if (!translated) setTranslate();
}
if (params.watchOverflow && snapGrid !== swiper.snapGrid) swiper.checkOverflow();
swiper.emit("update");
}
changeDirection(newDirection, needUpdate) {
if (void 0 === needUpdate) needUpdate = true;
const swiper = this;
const currentDirection = swiper.params.direction;
if (!newDirection) newDirection = "horizontal" === currentDirection ? "vertical" :
"horizontal";
if (newDirection === currentDirection || "horizontal" !== newDirection &&
"vertical" !== newDirection) return swiper;
swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).add
Class(`${swiper.params.containerModifierClass}${newDirection}`);
swiper.emitContainerClasses();
swiper.params.direction = newDirection;
swiper.slides.each((slideEl => {
if ("vertical" === newDirection) slideEl.style.width = ""; else slideEl.style.height = "";
}));
swiper.emit("changeDirection");
if (needUpdate) swiper.update();
return swiper;
}
mount(el) {
const swiper = this;
if (swiper.mounted) return true;
const $el = dom(el || swiper.params.el);
el = $el[0];
if (!el) return false;
el.swiper = swiper;
const getWrapperSelector = () => `.${(swiper.params.wrapperClass || "").trim().split("
").join(".")}`;
const getWrapper = () => {
if (el && el.shadowRoot && el.shadowRoot.querySelector) {
const res = dom(el.shadowRoot.querySelector(getWrapperSelector()));
res.children = options => $el.children(options);
return res;
}
if (!$el.children) return dom($el).children(getWrapperSelector());
return $el.children(getWrapperSelector());
};
let $wrapperEl = getWrapper();
if (0 === $wrapperEl.length && swiper.params.createElements) {
const document = ssr_window_esm_getDocument();
const wrapper = document.createElement("div");
$wrapperEl = dom(wrapper);
wrapper.className = swiper.params.wrapperClass;
$el.append(wrapper);
$el.children(`.${swiper.params.slideClass}`).each((slideEl => {
$wrapperEl.append(slideEl);
}));
}
Object.assign(swiper, {
$el,
el,
$wrapperEl,
wrapperEl: $wrapperEl[0],
mounted: true,
rtl: "rtl" === el.dir.toLowerCase() || "rtl" === $el.css("direction"),
rtlTranslate: "horizontal" === swiper.params.direction && ("rtl" ===
el.dir.toLowerCase() || "rtl" === $el.css("direction")),
wrongRTL: "-webkit-box" === $wrapperEl.css("display")
});
return true;
}
init(el) {
const swiper = this;
if (swiper.initialized) return swiper;
const mounted = swiper.mount(el);
if (false === mounted) return swiper;
swiper.emit("beforeInit");
if (swiper.params.breakpoints) swiper.setBreakpoint();
swiper.addClasses();
if (swiper.params.loop) swiper.loopCreate();
swiper.updateSize();
swiper.updateSlides();
if (swiper.params.watchOverflow) swiper.checkOverflow();
if (swiper.params.grabCursor && swiper.enabled) swiper.setGrabCursor();
if (swiper.params.preloadImages) swiper.preloadImages();
if (swiper.params.loop) swiper.slideTo(swiper.params.initialSlide +
swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true); else
swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
swiper.attachEvents();
swiper.initialized = true;
swiper.emit("init");
swiper.emit("afterInit");
return swiper;
}
destroy(deleteInstance, cleanStyles) {
if (void 0 === deleteInstance) deleteInstance = true;
if (void 0 === cleanStyles) cleanStyles = true;
const swiper = this;
const {params, $el, $wrapperEl, slides} = swiper;
if ("undefined" === typeof swiper.params || swiper.destroyed) return null;
swiper.emit("beforeDestroy");
swiper.initialized = false;
swiper.detachEvents();
if (params.loop) swiper.loopDestroy();
if (cleanStyles) {
swiper.removeClasses();
$el.removeAttr("style");
$wrapperEl.removeAttr("style");
if (slides && slides.length) slides.removeClass([ params.slideVisibleClass,
params.slideActiveClass, params.slideNextClass, params.slidePrevClass ].join("
")).removeAttr("style").removeAttr("data-swiper-slide-index");
}
swiper.emit("destroy");
Object.keys(swiper.eventsListeners).forEach((eventName => {
swiper.off(eventName);
}));
if (false !== deleteInstance) {
swiper.$el[0].swiper = null;
deleteProps(swiper);
}
swiper.destroyed = true;
return null;
}
static extendDefaults(newDefaults) {
utils_extend(extendedDefaults, newDefaults);
}
static get extendedDefaults() {
return extendedDefaults;
}
static get defaults() {
return defaults;
}
static installModule(mod) {
if (!core_Swiper.prototype.__modules__) core_Swiper.prototype.__modules__ = [];
const modules = core_Swiper.prototype.__modules__;
if ("function" === typeof mod && modules.indexOf(mod) < 0) modules.push(mod);
}
static use(module) {
if (Array.isArray(module)) {
module.forEach((m => core_Swiper.installModule(m)));
return core_Swiper;
}
core_Swiper.installModule(module);
return core_Swiper;
}
}
Object.keys(prototypes).forEach((prototypeGroup => {
Object.keys(prototypes[prototypeGroup]).forEach((protoMethod => {
core_Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
}));
}));
core_Swiper.use([ Resize, Observer ]);
const core = core_Swiper;
function create_element_if_not_defined_createElementIfNotDefined(swiper,
originalParams, params, checkProps) {
const document = ssr_window_esm_getDocument();
if (swiper.params.createElements) Object.keys(checkProps).forEach((key => {
if (!params[key] && true === params.auto) {
let element = swiper.$el.children(`.${checkProps[key]}`)[0];
if (!element) {
element = document.createElement("div");
element.className = checkProps[key];
swiper.$el.append(element);
}
params[key] = element;
originalParams[key] = element;
}
}));
return params;
}
function Navigation(_ref) {
let {swiper, extendParams, on, emit} = _ref;
extendParams({
navigation: {
nextEl: null,
prevEl: null,
hideOnClick: false,
disabledClass: "swiper-button-disabled",
hiddenClass: "swiper-button-hidden",
lockClass: "swiper-button-lock",
navigationDisabledClass: "swiper-navigation-disabled"
}
});
swiper.navigation = {
nextEl: null,
$nextEl: null,
prevEl: null,
$prevEl: null
};
function getEl(el) {
let $el;
if (el) {
$el = dom(el);
if (swiper.params.uniqueNavElements && "string" === typeof el && $el.length > 1
&& 1 === swiper.$el.find(el).length) $el = swiper.$el.find(el);
}
return $el;
}
function toggleEl($el, disabled) {
const params = swiper.params.navigation;
if ($el && $el.length > 0) {
$el[disabled ? "addClass" : "removeClass"](params.disabledClass);
if ($el[0] && "BUTTON" === $el[0].tagName) $el[0].disabled = disabled;
if (swiper.params.watchOverflow && swiper.enabled) $el[swiper.isLocked ?
"addClass" : "removeClass"](params.lockClass);
}
}
function update() {
if (swiper.params.loop) return;
const {$nextEl, $prevEl} = swiper.navigation;
toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);
toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);
}
function onPrevClick(e) {
e.preventDefault();
if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
swiper.slidePrev();
}
function onNextClick(e) {
e.preventDefault();
if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
swiper.slideNext();
}
function init() {
const params = swiper.params.navigation;
swiper.params.navigation =
create_element_if_not_defined_createElementIfNotDefined(swiper,
swiper.originalParams.navigation, swiper.params.navigation, {
nextEl: "swiper-button-next",
prevEl: "swiper-button-prev"
});
if (!(params.nextEl || params.prevEl)) return;
const $nextEl = getEl(params.nextEl);
const $prevEl = getEl(params.prevEl);
if ($nextEl && $nextEl.length > 0) $nextEl.on("click", onNextClick);
if ($prevEl && $prevEl.length > 0) $prevEl.on("click", onPrevClick);
Object.assign(swiper.navigation, {
$nextEl,
nextEl: $nextEl && $nextEl[0],
$prevEl,
prevEl: $prevEl && $prevEl[0]
});
if (!swiper.enabled) {
if ($nextEl) $nextEl.addClass(params.lockClass);
if ($prevEl) $prevEl.addClass(params.lockClass);
}
}
function destroy() {
const {$nextEl, $prevEl} = swiper.navigation;
if ($nextEl && $nextEl.length) {
$nextEl.off("click", onNextClick);
$nextEl.removeClass(swiper.params.navigation.disabledClass);
}
if ($prevEl && $prevEl.length) {
$prevEl.off("click", onPrevClick);
$prevEl.removeClass(swiper.params.navigation.disabledClass);
}
}
on("init", (() => {
if (false === swiper.params.navigation.enabled) disable(); else {
init();
update();
}
}));
on("toEdge fromEdge lock unlock", (() => {
update();
}));
on("destroy", (() => {
destroy();
}));
on("enable disable", (() => {
const {$nextEl, $prevEl} = swiper.navigation;
if ($nextEl) $nextEl[swiper.enabled ? "removeClass" :
"addClass"](swiper.params.navigation.lockClass);
if ($prevEl) $prevEl[swiper.enabled ? "removeClass" :
"addClass"](swiper.params.navigation.lockClass);
}));
on("click", ((_s, e) => {
const {$nextEl, $prevEl} = swiper.navigation;
const targetEl = e.target;
if (swiper.params.navigation.hideOnClick && !dom(targetEl).is($prevEl)
&& !dom(targetEl).is($nextEl)) {
if (swiper.pagination && swiper.params.pagination &&
swiper.params.pagination.clickable && (swiper.pagination.el === targetEl ||
swiper.pagination.el.contains(targetEl))) return;
let isHidden;
if ($nextEl) isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass); else
if ($prevEl) isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);
if (true === isHidden) emit("navigationShow"); else emit("navigationHide");
if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass);
if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass);
}
}));
const enable = () => {
swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);
init();
update();
};
const disable = () => {
swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);
destroy();
};
Object.assign(swiper.navigation, {
enable,
disable,
update,
init,
destroy
});
}
function classes_to_selector_classesToSelector(classes) {
if (void 0 === classes) classes = "";
return `.${classes.trim().replace(/([\.:!\/])/g, "\\$1").replace(/ /g, ".")}`;
}
function Pagination(_ref) {
let {swiper, extendParams, on, emit} = _ref;
const pfx = "swiper-pagination";
extendParams({
pagination: {
el: null,
bulletElement: "span",
clickable: false,
hideOnClick: false,
renderBullet: null,
renderProgressbar: null,
renderFraction: null,
renderCustom: null,
progressbarOpposite: false,
type: "bullets",
dynamicBullets: false,
dynamicMainBullets: 1,
formatFractionCurrent: number => number,
formatFractionTotal: number => number,
bulletClass: `${pfx}-bullet`,
bulletActiveClass: `${pfx}-bullet-active`,
modifierClass: `${pfx}-`,
currentClass: `${pfx}-current`,
totalClass: `${pfx}-total`,
hiddenClass: `${pfx}-hidden`,
progressbarFillClass: `${pfx}-progressbar-fill`,
progressbarOppositeClass: `${pfx}-progressbar-opposite`,
clickableClass: `${pfx}-clickable`,
lockClass: `${pfx}-lock`,
horizontalClass: `${pfx}-horizontal`,
verticalClass: `${pfx}-vertical`,
paginationDisabledClass: `${pfx}-disabled`
}
});
swiper.pagination = {
el: null,
$el: null,
bullets: []
};
let bulletSize;
let dynamicBulletIndex = 0;
function isPaginationDisabled() {
return !swiper.params.pagination.el || !swiper.pagination.el
|| !swiper.pagination.$el || 0 === swiper.pagination.$el.length;
}
function setSideBullets($bulletEl, position) {
const {bulletActiveClass} = swiper.params.pagination;
$bulletEl[position]().addClass(`${bulletActiveClass}-
${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);
}
function update() {
const rtl = swiper.rtl;
const params = swiper.params.pagination;
if (isPaginationDisabled()) return;
const slidesLength = swiper.virtual && swiper.params.virtual.enabled ?
swiper.virtual.slides.length : swiper.slides.length;
const $el = swiper.pagination.$el;
let current;
const total = swiper.params.loop ? Math.ceil((slidesLength - 2 * swiper.loopedSlides) /
swiper.params.slidesPerGroup) : swiper.snapGrid.length;
if (swiper.params.loop) {
current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) /
swiper.params.slidesPerGroup);
if (current > slidesLength - 1 - 2 * swiper.loopedSlides) current -= slidesLength - 2 *
swiper.loopedSlides;
if (current > total - 1) current -= total;
if (current < 0 && "bullets" !== swiper.params.paginationType) current = total +
current;
} else if ("undefined" !== typeof swiper.snapIndex) current = swiper.snapIndex; else
current = swiper.activeIndex || 0;
if ("bullets" === params.type && swiper.pagination.bullets &&
swiper.pagination.bullets.length > 0) {
const bullets = swiper.pagination.bullets;
let firstIndex;
let lastIndex;
let midIndex;
if (params.dynamicBullets) {
bulletSize = bullets.eq(0)[swiper.isHorizontal() ? "outerWidth" :
"outerHeight"](true);
$el.css(swiper.isHorizontal() ? "width" : "height", `${bulletSize *
(params.dynamicMainBullets + 4)}px`);
if (params.dynamicMainBullets > 1 && void 0 !== swiper.previousIndex) {
dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides ||
0);
if (dynamicBulletIndex > params.dynamicMainBullets - 1) dynamicBulletIndex =
params.dynamicMainBullets - 1; else if (dynamicBulletIndex < 0) dynamicBulletIndex = 0;
}
firstIndex = Math.max(current - dynamicBulletIndex, 0);
lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) -
1);
midIndex = (lastIndex + firstIndex) / 2;
}
bullets.removeClass([ "", "-next", "-next-next", "-prev", "-prev-prev", "-
main" ].map((suffix => `${params.bulletActiveClass}${suffix}`)).join(" "));
if ($el.length > 1) bullets.each((bullet => {
const $bullet = dom(bullet);
const bulletIndex = $bullet.index();
if (bulletIndex === current) $bullet.addClass(params.bulletActiveClass);
if (params.dynamicBullets) {
if (bulletIndex >= firstIndex && bulletIndex <= lastIndex)
$bullet.addClass(`${params.bulletActiveClass}-main`);
if (bulletIndex === firstIndex) setSideBullets($bullet, "prev");
if (bulletIndex === lastIndex) setSideBullets($bullet, "next");
}
})); else {
const $bullet = bullets.eq(current);
const bulletIndex = $bullet.index();
$bullet.addClass(params.bulletActiveClass);
if (params.dynamicBullets) {
const $firstDisplayedBullet = bullets.eq(firstIndex);
const $lastDisplayedBullet = bullets.eq(lastIndex);
for (let i = firstIndex; i <= lastIndex; i += 1)
bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);
if (swiper.params.loop) if (bulletIndex >= bullets.length) {
for (let i = params.dynamicMainBullets; i >= 0; i -= 1) bullets.eq(bullets.length
- i).addClass(`${params.bulletActiveClass}-main`);
bullets.eq(bullets.length - params.dynamicMainBullets -
1).addClass(`${params.bulletActiveClass}-prev`);
} else {
setSideBullets($firstDisplayedBullet, "prev");
setSideBullets($lastDisplayedBullet, "next");
} else {
setSideBullets($firstDisplayedBullet, "prev");
setSideBullets($lastDisplayedBullet, "next");
}
}
}
if (params.dynamicBullets) {
const dynamicBulletsLength = Math.min(bullets.length,
params.dynamicMainBullets + 4);
const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 -
midIndex * bulletSize;
const offsetProp = rtl ? "right" : "left";
bullets.css(swiper.isHorizontal() ? offsetProp : "top", `${bulletsOffset}px`);
}
}
if ("fraction" === params.type) {
$el.find(classes_to_selector_classesToSelector(params.currentClass)).text(params.formatFra
ctionCurrent(current + 1));
$el.find(classes_to_selector_classesToSelector(params.totalClass)).text(params.formatFracti
onTotal(total));
}
if ("progressbar" === params.type) {
let progressbarDirection;
if (params.progressbarOpposite) progressbarDirection = swiper.isHorizontal() ?
"vertical" : "horizontal"; else progressbarDirection = swiper.isHorizontal() ? "horizontal" :
"vertical";
const scale = (current + 1) / total;
let scaleX = 1;
let scaleY = 1;
if ("horizontal" === progressbarDirection) scaleX = scale; else scaleY = scale;
$el.find(classes_to_selector_classesToSelector(params.progressbarFillClass)).transform(`tran
slate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);
}
if ("custom" === params.type && params.renderCustom) {
$el.html(params.renderCustom(swiper, current + 1, total));
emit("paginationRender", $el[0]);
} else emit("paginationUpdate", $el[0]);
if (swiper.params.watchOverflow && swiper.enabled) $el[swiper.isLocked ?
"addClass" : "removeClass"](params.lockClass);
}
function render() {
const params = swiper.params.pagination;
if (isPaginationDisabled()) return;
const slidesLength = swiper.virtual && swiper.params.virtual.enabled ?
swiper.virtual.slides.length : swiper.slides.length;
const $el = swiper.pagination.$el;
let paginationHTML = "";
if ("bullets" === params.type) {
let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - 2 *
swiper.loopedSlides) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
if (swiper.params.freeMode && swiper.params.freeMode.enabled
&& !swiper.params.loop && numberOfBullets > slidesLength) numberOfBullets =
slidesLength;
for (let i = 0; i < numberOfBullets; i += 1) if (params.renderBullet) paginationHTML
+= params.renderBullet.call(swiper, i, params.bulletClass); else paginationHTML +=
`<${params.bulletElement} class="${params.bulletClass}"></${params.bulletElement}>`;
$el.html(paginationHTML);
swiper.pagination.bullets =
$el.find(classes_to_selector_classesToSelector(params.bulletClass));
}
if ("fraction" === params.type) {
if (params.renderFraction) paginationHTML = params.renderFraction.call(swiper,
params.currentClass, params.totalClass); else paginationHTML = `<span
class="${params.currentClass}"></span>` + " / " + `<span
class="${params.totalClass}"></span>`;
$el.html(paginationHTML);
}
if ("progressbar" === params.type) {
if (params.renderProgressbar) paginationHTML =
params.renderProgressbar.call(swiper, params.progressbarFillClass); else paginationHTML =
`<span class="${params.progressbarFillClass}"></span>`;
$el.html(paginationHTML);
}
if ("custom" !== params.type) emit("paginationRender", swiper.pagination.$el[0]);
}
function init() {
swiper.params.pagination =
create_element_if_not_defined_createElementIfNotDefined(swiper,
swiper.originalParams.pagination, swiper.params.pagination, {
el: "swiper-pagination"
});
const params = swiper.params.pagination;
if (!params.el) return;
let $el = dom(params.el);
if (0 === $el.length) return;
if (swiper.params.uniqueNavElements && "string" === typeof params.el &&
$el.length > 1) {
$el = swiper.$el.find(params.el);
if ($el.length > 1) $el = $el.filter((el => {
if (dom(el).parents(".swiper")[0] !== swiper.el) return false;
return true;
}));
}
if ("bullets" === params.type && params.clickable)
$el.addClass(params.clickableClass);
$el.addClass(params.modifierClass + params.type);
$el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
if ("bullets" === params.type && params.dynamicBullets) {
$el.addClass(`${params.modifierClass}${params.type}-dynamic`);
dynamicBulletIndex = 0;
if (params.dynamicMainBullets < 1) params.dynamicMainBullets = 1;
}
if ("progressbar" === params.type && params.progressbarOpposite)
$el.addClass(params.progressbarOppositeClass);
if (params.clickable) $el.on("click",
classes_to_selector_classesToSelector(params.bulletClass), (function onClick(e) {
e.preventDefault();
let index = dom(this).index() * swiper.params.slidesPerGroup;
if (swiper.params.loop) index += swiper.loopedSlides;
swiper.slideTo(index);
}));
Object.assign(swiper.pagination, {
$el,
el: $el[0]
});
if (!swiper.enabled) $el.addClass(params.lockClass);
}
function destroy() {
const params = swiper.params.pagination;
if (isPaginationDisabled()) return;
const $el = swiper.pagination.$el;
$el.removeClass(params.hiddenClass);
$el.removeClass(params.modifierClass + params.type);
$el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass)
swiper.pagination.bullets.removeClass(params.bulletActiveClass);
if (params.clickable) $el.off("click",
classes_to_selector_classesToSelector(params.bulletClass));
}
on("init", (() => {
if (false === swiper.params.pagination.enabled) disable(); else {
init();
render();
update();
}
}));
on("activeIndexChange", (() => {
if (swiper.params.loop) update(); else if ("undefined" === typeof swiper.snapIndex)
update();
}));
on("snapIndexChange", (() => {
if (!swiper.params.loop) update();
}));
on("slidesLengthChange", (() => {
if (swiper.params.loop) {
render();
update();
}
}));
on("snapGridLengthChange", (() => {
if (!swiper.params.loop) {
render();
update();
}
}));
on("destroy", (() => {
destroy();
}));
on("enable disable", (() => {
const {$el} = swiper.pagination;
if ($el) $el[swiper.enabled ? "removeClass" :
"addClass"](swiper.params.pagination.lockClass);
}));
on("lock unlock", (() => {
update();
}));
on("click", ((_s, e) => {
const targetEl = e.target;
const {$el} = swiper.pagination;
if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick &&
$el.length > 0 && !dom(targetEl).hasClass(swiper.params.pagination.bulletClass)) {
if (swiper.navigation && (swiper.navigation.nextEl && targetEl ===
swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl ===
swiper.navigation.prevEl)) return;
const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);
if (true === isHidden) emit("paginationShow"); else emit("paginationHide");
$el.toggleClass(swiper.params.pagination.hiddenClass);
}
}));
const enable = () => {
swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);
if (swiper.pagination.$el)
swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);
init();
render();
update();
};
const disable = () => {
swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);
if (swiper.pagination.$el)
swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);
destroy();
};
Object.assign(swiper.pagination, {
enable,
disable,
render,
update,
init,
destroy
});
}
function initSliders() {
if (document.querySelector(".about__slider")) new core(".about__slider", {
modules: [ Navigation ],
observer: true,
observeParents: true,
slidesPerView: 4,
spaceBetween: 0,
autoHeight: true,
speed: 800,
breakpoints: {
320: {
slidesPerView: 1.5,
spaceBetween: 4,
autoHeight: true
},
560: {
slidesPerView: 3
},
768: {
slidesPerView: 4,
spaceBetween: 4
}
},
on: {}
});
if (document.querySelector(".team__slider")) new core(".team__slider", {
modules: [ Navigation ],
observer: true,
observeParents: true,
slidesPerView: 3,
spaceBetween: 16,
autoHeight: true,
speed: 800,
breakpoints: {
320: {
slidesPerView: 1.5,
spaceBetween: 16,
autoHeight: true
},
560: {
slidesPerView: 3
},
768: {
slidesPerView: 3,
spaceBetween: 16
}
},
on: {}
});
if (document.querySelector(".crypto__slider")) new core(".crypto__slider", {
modules: [ Navigation ],
observer: true,
observeParents: true,
slidesPerView: 4,
spaceBetween: 8,
autoHeight: true,
speed: 800,
breakpoints: {
320: {
slidesPerView: 1.5,
spaceBetween: 4,
autoHeight: true
},
560: {
slidesPerView: 3
},
768: {
slidesPerView: 4,
spaceBetween: 4
}
},
on: {}
});
if (document.querySelector(".virtual__slider")) new core(".virtual__slider", {
modules: [ Navigation ],
observer: true,
observeParents: true,
slidesPerView: 2,
spaceBetween: 8,
autoHeight: true,
speed: 800,
breakpoints: {
320: {
slidesPerView: 1.5,
spaceBetween: 8,
autoHeight: true
},
768: {
slidesPerView: 2,
spaceBetween: 8
}
},
on: {}
});
if (document.querySelector(".data__slider")) new core(".data__slider", {
modules: [ Navigation ],
observer: true,
observeParents: true,
slidesPerView: 3,
spaceBetween: 16,
autoHeight: true,
speed: 800,
breakpoints: {
320: {
slidesPerView: 1.5,
spaceBetween: 16,
autoHeight: true
},
560: {
slidesPerView: 3
},
768: {
slidesPerView: 3,
spaceBetween: 16
}
},
on: {}
});
if (document.querySelector(".projects__slider")) new core(".projects__slider", {
modules: [ Navigation, Pagination ],
observer: true,
observeParents: true,
slidesPerView: 1,
spaceBetween: 16,
speed: 800,
pagination: {
el: ".swiper-pagination",
type: "bullets",
clickable: true
}
});
}
window.addEventListener("load", (function(e) {
initSliders();
}));
let addWindowScrollEvent = false;
function pageNavigation() {
document.addEventListener("click", pageNavigationAction);
document.addEventListener("watcherCallback", pageNavigationAction);
function pageNavigationAction(e) {
if ("click" === e.type) {
const targetElement = e.target;
if (targetElement.closest("[data-goto]")) {
const gotoLink = targetElement.closest("[data-goto]");
const gotoLinkSelector = gotoLink.dataset.goto ? gotoLink.dataset.goto : "";
const noHeader = gotoLink.hasAttribute("data-goto-header") ? true : false;
const gotoSpeed = gotoLink.dataset.gotoSpeed ? gotoLink.dataset.gotoSpeed :
500;
const offsetTop = gotoLink.dataset.gotoTop ?
parseInt(gotoLink.dataset.gotoTop) : 0;
gotoblock_gotoBlock(gotoLinkSelector, noHeader, gotoSpeed, offsetTop);
e.preventDefault();
}
} else if ("watcherCallback" === e.type && e.detail) {
const entry = e.detail.entry;
const targetElement = entry.target;
if ("navigator" === targetElement.dataset.watch) {
document.querySelector(`[data-goto]._navigator-active`);
let navigatorCurrentItem;
if (targetElement.id && document.querySelector(`[data-
goto="#${targetElement.id}"]`)) navigatorCurrentItem = document.querySelector(`[data-
goto="#${targetElement.id}"]`); else if (targetElement.classList.length) for (let index = 0;
index < targetElement.classList.length; index++) {
const element = targetElement.classList[index];
if (document.querySelector(`[data-goto=".${element}"]`)) {
navigatorCurrentItem = document.querySelector(`[data-
goto=".${element}"]`);
break;
}
}
if (entry.isIntersecting) navigatorCurrentItem ?
navigatorCurrentItem.classList.add("_navigator-active") : null; else navigatorCurrentItem ?
navigatorCurrentItem.classList.remove("_navigator-active") : null;
}
}
}
if (getHash()) {
let goToHash;
if (document.querySelector(`#${getHash()}`)) goToHash = `#${getHash()}`; else if
(document.querySelector(`.${getHash()}`)) goToHash = `.${getHash()}`;
goToHash ? gotoblock_gotoBlock(goToHash, true, 500, 20) : null;
}
}
function headerScroll() {
addWindowScrollEvent = true;
const header = document.querySelector("header.header");
const headerShow = header.hasAttribute("data-scroll-show");
const headerShowTimer = header.dataset.scrollShow ? header.dataset.scrollShow : 500;
const startPoint = header.dataset.scroll ? header.dataset.scroll : 1;
let scrollDirection = 0;
let timer;
document.addEventListener("windowScroll", (function(e) {
const scrollTop = window.scrollY;
clearTimeout(timer);
if (scrollTop >= startPoint) {
!header.classList.contains("_header-scroll") ? header.classList.add("_header-
scroll") : null;
if (headerShow) {
if (scrollTop > scrollDirection) header.classList.contains("_header-show") ?
header.classList.remove("_header-show") : null; else !header.classList.contains("_header-
show") ? header.classList.add("_header-show") : null;
timer = setTimeout((() => {
!header.classList.contains("_header-show") ? header.classList.add("_header-
show") : null;
}), headerShowTimer);
}
} else {
header.classList.contains("_header-scroll") ? header.classList.remove("_header-
scroll") : null;
if (headerShow) header.classList.contains("_header-show") ?
header.classList.remove("_header-show") : null;
}
scrollDirection = scrollTop <= 0 ? 0 : scrollTop;
}));
}
setTimeout((() => {
if (addWindowScrollEvent) {
let windowScroll = new Event("windowScroll");
window.addEventListener("scroll", (function(e) {
document.dispatchEvent(windowScroll);
}));
}
}), 0);
const animItems = document.querySelectorAll("._anim-items");
if (animItems.length > 0) {
window.addEventListener("scroll", animOnScroll);
function animOnScroll() {
for (let index = 0; index < animItems.length; index++) {
const animItem = animItems[index];
const animItemHeight = animItem.offsetHeight;
const animItemOffset = offset(animItem).top;
const animStart = 4;
let animItemPoint = window.innerHeight - animItemHeight / animStart;
if (animItemHeight > window.innerHeight) animItemPoint = window.innerHeight -
window.innerHeight / animStart;
if (pageYOffset > animItemOffset - animItemPoint && pageYOffset <
animItemOffset + animItemHeight) animItem.classList.add("_active"); else if
(!animItem.classList.contains("_anim-no-hide")) animItem.classList.remove("_active");
}
}
function offset(el) {
const rect = el.getBoundingClientRect(), scrollLeft = window.pageXOffset ||
document.documentElement.scrollLeft, scrollTop = window.pageYOffset ||
document.documentElement.scrollTop;
return {
top: rect.top + scrollTop,
left: rect.left + scrollLeft
};
}
setTimeout((() => {
animOnScroll();
}), 300);
}
window["FLS"] = true;
isWebp();
addTouchClass();
menuInit();
pageNavigation();
headerScroll();
})();
app.min.js
(()=>{"use strict";let e={Android:function(){return
navigator.userAgent.match(/Android/i)},BlackBerry:function(){return
navigator.userAgent.match(/BlackBerry/i)},iOS:function(){return
navigator.userAgent.match(/iPhone|iPad|iPod/i)},Opera:function(){return
navigator.userAgent.match(/Opera Mini/i)},Windows:function(){return
navigator.userAgent.match(/IEMobile/i)},any:function(){return
e.Android()||e.BlackBerry()||e.iOS()||e.Opera()||e.Windows()}};function
t(){if(location.hash)return location.hash.replace("#","")}let s=!0,i=(e=500)=>{let
t=document.querySelector("body");if(s){let i=document.querySelectorAll("[data-
lp]");setTimeout((()=>{for(let
e=0;e<i.length;e++){i[e].style.paddingRight="0px"}t.style.paddingRight="0px",document.doc
umentElement.classList.remove("lock")}),e),s=!1,setTimeout((function(){s=!0}),e)}},n=(e=500
)=>{let t=document.querySelector("body");if(s){let i=document.querySelectorAll("[data-
lp]");for(let e=0;e<i.length;e++){i[e].style.paddingRight=window.innerWidth-
document.querySelector(".wrapper").offsetWidth+"px"}t.style.paddingRight=window.inner
Width-
document.querySelector(".wrapper").offsetWidth+"px",document.documentElement.classLi
st.add("lock"),s=!1,setTimeout((function(){s=!0}),e)}};function
r(e){setTimeout((()=>{window.FLS&&console.log(e)}),0)}let a=(e,t=!1,s=500,n=0)=>{const
a=document.querySelector(e);if(a){let
l="",o=0;t&&(l="header.header",o=document.querySelector(l).offsetHeight);let
d={speedAsDuration:!0,speed:s,header:l,offset:n,easing:"easeOutQuad"};if(document.docu
mentElement.classList.contains("menu-
open")&&(i(),document.documentElement.classList.remove("menu-
open")),"undefined"!=typeof SmoothScroll)(new SmoothScroll).animateScroll(a,"",d);else{let
e=a.getBoundingClientRect().top+scrollY;e=o?e-o:e,e=n?e-
n:e,window.scrollTo({top:e,behavior:"smooth"})}r(`[gotoBlock]: Юхуу...едем к ${e}`)}else
r(`[gotoBlock]: Ой ой..Такого блока нет на странице: ${e}`)};function l(e){return
null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function
o(e={},t={}){Object.keys(t).forEach((s=>{void
0===e[s]?e[s]=t[s]:l(t[s])&&l(e[s])&&Object.keys(t[s]).length>0&&o(e[s],t[s])}))}const
d={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:
""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({
initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getEleme
ntsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:
"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function c(){const
e="undefined"!=typeof document?document:{};return o(e,d),e}const
p={document:d,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin
:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},
CustomEvent:function(){return
this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValu
e:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),re
questAnimationFrame:e=>"undefined"==typeof
setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof
setTimeout&&clearTimeout(e)}};function u(){const e="undefined"!=typeof
window?window:{};return o(e,p),e}class h extends Array{constructor(e){"number"==typeof
e?super(e):(super(...e||[]),function(e){const
t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))
}}function f(e=[]){const t=[];return
e.forEach((e=>{Array.isArray(e)?t.push(...f(e)):t.push(e)})),t}function m(e,t){return
Array.prototype.filter.call(e,t)}function g(e,t){const s=u(),i=c();let n=[];if(!t&&e instanceof
h)return e;if(!e)return new h(n);if("string"==typeof e){const
s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let
e="div";0===s.indexOf("<li")&&(e="ul"),0===s.indexOf("<tr")&&(e="tbody"),0!==s.indexOf("
<td")&&0!==s.indexOf("<th")||(e="tr"),0===s.indexOf("<tbody")&&(e="table"),0===s.index
Of("<option")&&(e="select");const t=i.createElement(e);t.innerHTML=s;for(let
e=0;e<t.childNodes.length;e+=1)n.push(t.childNodes[e])}else
n=function(e,t){if("string"!=typeof e)return[e];const s=[],i=t.querySelectorAll(e);for(let
e=0;e<i.length;e+=1)s.push(i[e]);return s}(e.trim(),t||i)}else
if(e.nodeType||e===s||e===i)n.push(e);else if(Array.isArray(e)){if(e instanceof h)return
e;n=e}return new h(function(e){const t=[];for(let s=0;s<e.length;s+=1)-
1===t.indexOf(e[s])&&t.push(e[s]);return t}(n))}g.fn=h.prototype;const v="resize
scroll".split(" ");function w(e){return function(...t){if(void 0===t[0]){for(let
t=0;t<this.length;t+=1)v.indexOf(e)<0&&(e in this[t]?this[t][e]():g(this[t]).trigger(e));return
this}return
this.on(e,...t)}}w("click"),w("blur"),w("focus"),w("focusin"),w("focusout"),w("keyup"),w("key
down"),w("keypress"),w("submit"),w("change"),w("mousedown"),w("mousemove"),w("mou
seup"),w("mouseenter"),w("mouseleave"),w("mouseout"),w("mouseover"),w("touchstart"),
w("touchend"),w("touchmove"),w("resize"),w("scroll");const
b={addClass:function(...e){const t=f(e.map((e=>e.split(" "))));return
this.forEach((e=>{e.classList.add(...t)})),this},removeClass:function(...e){const
t=f(e.map((e=>e.split(" "))));return
this.forEach((e=>{e.classList.remove(...t)})),this},hasClass:function(...e){const
t=f(e.map((e=>e.split(" "))));return
m(this,(e=>t.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(...e){
const t=f(e.map((e=>e.split("
"))));this.forEach((e=>{t.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===argu
ments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let
s=0;s<this.length;s+=1)if(2===arguments.length)this[s].setAttribute(e,t);else for(const t in
e)this[s][t]=e[t],this[s].setAttribute(t,e[t]);return this},removeAttr:function(e){for(let
t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this},transform:function(e){for(let
t=0;t<this.length;t+=1)this[t].style.transform=e;return this},transition:function(e){for(let
t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?`${e}ms`:e;return
this},on:function(...e){let[t,s,i,n]=e;function r(e){const t=e.target;if(!t)return;const
n=e.target.dom7EventData||[];if(n.indexOf(e)<0&&n.unshift(e),g(t).is(s))i.apply(t,n);else{co
nst e=g(t).parents();for(let t=0;t<e.length;t+=1)g(e[t]).is(s)&&i.apply(e[t],n)}}function
a(e){const
t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),i.apply(this,t)}"f
unction"==typeof e[1]&&([t,i,n]=e,s=void 0),n||(n=!1);const l=t.split(" ");let o;for(let
e=0;e<this.length;e+=1){const t=this[e];if(s)for(o=0;o<l.length;o+=1){const
e=l[o];t.dom7LiveListeners||(t.dom7LiveListeners={}),t.dom7LiveListeners[e]||(t.dom7LiveLi
steners[e]=[]),t.dom7LiveListeners[e].push({listener:i,proxyListener:r}),t.addEventListener(e,
r,n)}else for(o=0;o<l.length;o+=1){const
e=l[o];t.dom7Listeners||(t.dom7Listeners={}),t.dom7Listeners[e]||(t.dom7Listeners[e]=[]),t.
dom7Listeners[e].push({listener:i,proxyListener:a}),t.addEventListener(e,a,n)}}return
this},off:function(...e){let[t,s,i,n]=e;"function"==typeof e[1]&&([t,i,n]=e,s=void
0),n||(n=!1);const r=t.split(" ");for(let e=0;e<r.length;e+=1){const t=r[e];for(let
e=0;e<this.length;e+=1){const r=this[e];let
a;if(!s&&r.dom7Listeners?a=r.dom7Listeners[t]:s&&r.dom7LiveListeners&&(a=r.dom7LiveLis
teners[t]),a&&a.length)for(let e=a.length-1;e>=0;e-=1){const
s=a[e];i&&s.listener===i||i&&s.listener&&s.listener.dom7proxy&&s.listener.dom7proxy===i
?(r.removeEventListener(t,s.proxyListener,n),a.splice(e,1)):i||(r.removeEventListener(t,s.pro
xyListener,n),a.splice(e,1))}}}return this},trigger:function(...e){const t=u(),s=e[0].split("
"),i=e[1];for(let n=0;n<s.length;n+=1){const r=s[n];for(let s=0;s<this.length;s+=1){const
n=this[s];if(t.CustomEvent){const s=new
t.CustomEvent(r,{detail:i,bubbles:!0,cancelable:!0});n.dom7EventData=e.filter(((e,t)=>t>0)),n
.dispatchEvent(s),n.dom7EventData=[],delete n.dom7EventData}}}return
this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function
s(i){i.target===this&&(e.call(this,i),t.off("transitionend",s))})),this},outerWidth:function(e){if(
this.length>0){if(e){const e=this.styles();return
this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-
right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return
null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return
this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-
top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return
null},styles:function(){const e=u();return
this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const
e=u(),t=c(),s=this[0],i=s.getBoundingClientRect(),n=t.body,r=s.clientTop||n.clientTop||0,a=s.
clientLeft||n.clientLeft||0,l=s===e?e.scrollY:s.scrollTop,o=s===e?e.scrollX:s.scrollLeft;return
{top:i.top+l-r,left:i.left+o-a}}return null},css:function(e,t){const s=u();let
i;if(1===arguments.length){if("string"!=typeof e){for(i=0;i<this.length;i+=1)for(const t in
e)this[i].style[t]=e[t];return this}if(this[0])return
s.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==
typeof e){for(i=0;i<this.length;i+=1)this[i].style[e]=t;return this}return
this},each:function(e){return
e?(this.forEach(((t,s)=>{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return
this[0]?this[0].innerHTML:null;for(let t=0;t<this.length;t+=1)this[t].innerHTML=e;return
this},text:function(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(let
t=0;t<this.length;t+=1)this[t].textContent=e;return this},is:function(e){const
t=u(),s=c(),i=this[0];let n,r;if(!i||void 0===e)return!1;if("string"==typeof
e){if(i.matches)return i.matches(e);if(i.webkitMatchesSelector)return
i.webkitMatchesSelector(e);if(i.msMatchesSelector)return
i.msMatchesSelector(e);for(n=g(e),r=0;r<n.length;r+=1)if(n[r]===i)return!0;return!1}if(e===s)
return i===s;if(e===t)return i===t;if(e.nodeType||e instanceof
h){for(n=e.nodeType?[e]:e,r=0;r<n.length;r+=1)if(n[r]===i)return!0;return!1}return!1},index:
function(){let
e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return
e}},eq:function(e){if(void 0===e)return this;const t=this.length;if(e>t-1)return
g([]);if(e<0){const s=t+e;return g(s<0?[]:[this[s]])}return g([this[e]])},append:function(...e){let
t;const s=c();for(let i=0;i<e.length;i+=1){t=e[i];for(let
e=0;e<this.length;e+=1)if("string"==typeof t){const
i=s.createElement("div");for(i.innerHTML=t;i.firstChild;)this[e].appendChild(i.firstChild)}else
if(t instanceof h)for(let s=0;s<t.length;s+=1)this[e].appendChild(t[s]);else
this[e].appendChild(t)}return this},prepend:function(e){const t=c();let
s,i;for(s=0;s<this.length;s+=1)if("string"==typeof e){const
n=t.createElement("div");for(n.innerHTML=e,i=n.childNodes.length-1;i>=0;i-
=1)this[s].insertBefore(n.childNodes[i],this[s].childNodes[0])}else if(e instanceof
h)for(i=0;i<e.length;i+=1)this[s].insertBefore(e[i],this[s].childNodes[0]);else
this[s].insertBefore(e,this[s].childNodes[0]);return this},next:function(e){return
this.length>0?e?this[0].nextElementSibling&&g(this[0].nextElementSibling).is(e)?g([this[0].n
extElementSibling]):g([]):this[0].nextElementSibling?g([this[0].nextElementSibling]):g([]):g([])
},nextAll:function(e){const t=[];let s=this[0];if(!s)return g([]);for(;s.nextElementSibling;){const
i=s.nextElementSibling;e?g(i).is(e)&&t.push(i):t.push(i),s=i}return
g(t)},prev:function(e){if(this.length>0){const t=this[0];return
e?t.previousElementSibling&&g(t.previousElementSibling).is(e)?g([t.previousElementSibling]
):g([]):t.previousElementSibling?g([t.previousElementSibling]):g([])}return
g([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return
g([]);for(;s.previousElementSibling;){const
i=s.previousElementSibling;e?g(i).is(e)&&t.push(i):t.push(i),s=i}return
g(t)},parent:function(e){const t=[];for(let
s=0;s<this.length;s+=1)null!==this[s].parentNode&&(e?g(this[s].parentNode).is(e)&&t.push(t
his[s].parentNode):t.push(this[s].parentNode));return g(t)},parents:function(e){const
t=[];for(let s=0;s<this.length;s+=1){let
i=this[s].parentNode;for(;i;)e?g(i).is(e)&&t.push(i):t.push(i),i=i.parentNode}return
g(t)},closest:function(e){let t=this;return void
0===e?g([]):(t.is(e)||(t=t.parents(e).eq(0)),t)},find:function(e){const t=[];for(let
s=0;s<this.length;s+=1){const i=this[s].querySelectorAll(e);for(let
e=0;e<i.length;e+=1)t.push(i[e])}return g(t)},children:function(e){const t=[];for(let
s=0;s<this.length;s+=1){const i=this[s].children;for(let
s=0;s<i.length;s+=1)e&&!g(i[s]).is(e)||t.push(i[s])}return g(t)},filter:function(e){return
g(m(this,e))},remove:function(){for(let
e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);retur
n
this}};Object.keys(b).forEach((e=>{Object.defineProperty(g.fn,e,{value:b[e],writable:!0})}));c
onst C=g;function S(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function T(){return
Date.now()}function y(e,t){void 0===t&&(t="x");const s=u();let i,n,r;const
a=function(e){const t=u();let s;return
t.getComputedStyle&&(s=t.getComputedStyle(e,null)),!s&&e.currentStyle&&(s=e.currentSty
le),s||(s=e.style),s}(e);return
s.WebKitCSSMatrix?(n=a.transform||a.webkitTransform,n.split(",").length>6&&(n=n.split(",
").map((e=>e.replace(",","."))).join(", ")),r=new
s.WebKitCSSMatrix("none"===n?"":n)):(r=a.MozTransform||a.OTransform||a.MsTransform
||a.msTransform||a.transform||a.getPropertyValue("transform").replace("translate(","mat
rix(1, 0, 0,
1,"),i=r.toString().split(",")),"x"===t&&(n=s.WebKitCSSMatrix?r.m41:16===i.length?parseFloa
t(i[12]):parseFloat(i[4])),"y"===t&&(n=s.WebKitCSSMatrix?r.m42:16===i.length?parseFloat(i[
13]):parseFloat(i[5])),n||0}function E(e){return"object"==typeof
e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-
1)}function x(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e
instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function k(){const
e=Object(arguments.length<=0?void
0:arguments[0]),t=["__proto__","constructor","prototype"];for(let
s=1;s<arguments.length;s+=1){const i=s<0||arguments.length<=s?void
0:arguments[s];if(null!=i&&!x(i)){const
s=Object.keys(Object(i)).filter((e=>t.indexOf(e)<0));for(let t=0,n=s.length;t<n;t+=1){const
n=s[t],r=Object.getOwnPropertyDescriptor(i,n);void
0!==r&&r.enumerable&&(E(e[n])&&E(i[n])?i[n].__swiper__?e[n]=i[n]:k(e[n],i[n]):!E(e[n])&&
E(i[n])?(e[n]={},i[n].__swiper__?e[n]=i[n]:k(e[n],i[n])):e[n]=i[n])}}}return e}function
$(e,t,s){e.style.setProperty(t,s)}function P(e){let{swiper:t,targetPosition:s,side:i}=e;const
n=u(),r=-t.translate;let a,l=null;const
o=t.params.speed;t.wrapperEl.style.scrollSnapType="none",n.cancelAnimationFrame(t.cssM
odeFrameID);const
d=s>r?"next":"prev",c=(e,t)=>"next"===d&&e>=t||"prev"===d&&e<=t,p=()=>{a=(new
Date).getTime(),null===l&&(l=a);const e=Math.max(Math.min((a-l)/o,1),0),d=.5-
Math.cos(e*Math.PI)/2;let u=r+d*(s-
r);if(c(u,s)&&(u=s),t.wrapperEl.scrollTo({[i]:u}),c(u,s))return
t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.
wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[i]:u})})),void
n.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=n.requestAnimationFrame
(p)};p()}let M,L,O;function A(){return M||(M=function(){const
e=u(),t=c();return{smoothScroll:t.documentElement&&"scrollBehavior"in
t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof
e.DocumentTouch),passiveListener:function(){let t=!1;try{const
s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",
null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),M}function I(e){return void
0===e&&(e={}),L||(L=function(e){let{userAgent:t}=void 0===e?{}:e;const
s=A(),i=u(),n=i.navigator.platform,r=t||i.navigator.userAgent,a={ios:!1,android:!1},l=i.screen.
width,o=i.screen.height,d=r.match(/(Android);?[\s\/]+([\d.]+)?/);let
c=r.match(/(iPad).*OS\s([\d_]+)/);const
p=r.match(/(iPod)(.*OS\s([\d_]+))?/),h=!c&&r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),f="Win3
2"===n;let
m="MacIntel"===n;return!c&&m&&s.touch&&["1024x1366","1366x1024","834x1194","119
4x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080
","1080x810"].indexOf(`${l}x${o}`)>=0&&(c=r.match(/(Version)\/([\d.]+)/),c||(c=[0,1,"13_0_
0"]),m=!1),d&&!f&&(a.os="android",a.android=!0),(c||h||p)&&(a.os="ios",a.ios=!0),a}(e)),L}
function _(){return O||(O=function(){const e=u();return{isSafari:function(){const
t=e.navigator.userAgent.toLowerCase();return
t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iP
hone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),O}const
B={on(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof
t)return i;const n=s?"unshift":"push";return e.split("
").forEach((e=>{i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][n](t)})),i},o
nce(e,t,s){const i=this;if(!i.eventsListeners||i.destroyed)return i;if("function"!=typeof
t)return i;function n(){i.off(e,n),n.__emitterProxy&&delete n.__emitterProxy;for(var
s=arguments.length,r=new Array(s),a=0;a<s;a++)r[a]=arguments[a];t.apply(i,r)}return
n.__emitterProxy=t,i.on(e,n,s)},onAny(e,t){const
s=this;if(!s.eventsListeners||s.destroyed)return s;if("function"!=typeof e)return s;const
i=t?"unshift":"push";return
s.eventsAnyListeners.indexOf(e)<0&&s.eventsAnyListeners[i](e),s},offAny(e){const
t=this;if(!t.eventsListeners||t.destroyed)return t;if(!t.eventsAnyListeners)return t;const
s=t.eventsAnyListeners.indexOf(e);return
s>=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const
s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split("
").forEach((e=>{void
0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((i,n)=>{(i=
==t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(n,1)}))})),s):s},e
mit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return
e;let t,s,i;for(var n=arguments.length,r=new
Array(n),a=0;a<n;a++)r[a]=arguments[a];"string"==typeof
r[0]||Array.isArray(r[0])?(t=r[0],s=r.slice(1,r.length),i=e):(t=r[0].events,s=r[0].data,i=r[0].cont
ext||e),s.unshift(i);return(Array.isArray(t)?t:t.split("
")).forEach((t=>{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListener
s.forEach((e=>{e.apply(i,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListen
ers[t].forEach((e=>{e.apply(i,s)}))})),e}};const z={updateSize:function(){const e=this;let
t,s;const i=e.$el;t=void
0!==e.params.width&&null!==e.params.width?e.params.width:i[0].clientWidth,s=void
0!==e.params.height&&null!==e.params.height?e.params.height:i[0].clientHeight,0===t&&e
.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(i.css("padding-left")||0,10)-
parseInt(i.css("padding-right")||0,10),s=s-parseInt(i.css("padding-top")||0,10)-
parseInt(i.css("padding-
bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:
t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function
t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom
":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-
left":"padding-top","padding-right":"padding-
bottom",marginRight:"marginBottom"}[t]}function s(e,s){return
parseFloat(e.getPropertyValue(t(s))||0)}const
i=e.params,{$wrapperEl:n,size:r,rtlTranslate:a,wrongRTL:l}=e,o=e.virtual&&i.virtual.enabled,
d=o?e.virtual.slides.length:e.slides.length,c=n.children(`.${e.params.slideClass}`),p=o?e.virtu
al.slides.length:c.length;let u=[];const h=[],f=[];let m=i.slidesOffsetBefore;"function"==typeof
m&&(m=i.slidesOffsetBefore.call(e));let g=i.slidesOffsetAfter;"function"==typeof
g&&(g=i.slidesOffsetAfter.call(e));const v=e.snapGrid.length,w=e.slidesGrid.length;let
b=i.spaceBetween,C=-m,S=0,T=0;if(void 0===r)return;"string"==typeof
b&&b.indexOf("%")>=0&&(b=parseFloat(b.replace("%",""))/100*r),e.virtualSize=-
b,a?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBotto
m:"",marginTop:""}),i.centeredSlides&&i.cssMode&&($(e.wrapperEl,"--swiper-centered-
offset-before",""),$(e.wrapperEl,"--swiper-centered-offset-after",""));const
y=i.grid&&i.grid.rows>1&&e.grid;let E;y&&e.grid.initSlides(p);const
x="auto"===i.slidesPerView&&i.breakpoints&&Object.keys(i.breakpoints).filter((e=>void
0!==i.breakpoints[e].slidesPerView)).length>0;for(let n=0;n<p;n+=1){E=0;const
a=c.eq(n);if(y&&e.grid.updateSlide(n,a,p,t),"none"!==a.css("display")){if("auto"===i.slidesPer
View){x&&(c[n].style[t("width")]="");const
r=getComputedStyle(a[0]),l=a[0].style.transform,o=a[0].style.webkitTransform;if(l&&(a[0].st
yle.transform="none"),o&&(a[0].style.webkitTransform="none"),i.roundLengths)E=e.isHoriz
ontal()?a.outerWidth(!0):a.outerHeight(!0);else{const e=s(r,"width"),t=s(r,"padding-
left"),i=s(r,"padding-right"),n=s(r,"margin-left"),l=s(r,"margin-
right"),o=r.getPropertyValue("box-sizing");if(o&&"border-
box"===o)E=e+n+l;else{const{clientWidth:s,offsetWidth:r}=a[0];E=e+t+i+n+l+(r-
s)}}l&&(a[0].style.transform=l),o&&(a[0].style.webkitTransform=o),i.roundLengths&&(E=Mat
h.floor(E))}else E=(r-(i.slidesPerView-
1)*b)/i.slidesPerView,i.roundLengths&&(E=Math.floor(E)),c[n]&&(c[n].style[t("width")]=`${E}
px`);c[n]&&(c[n].swiperSlideSize=E),f.push(E),i.centeredSlides?(C=C+E/2+S/2+b,0===S&&0!=
=n&&(C=C-r/2-b),0===n&&(C=C-r/2-
b),Math.abs(C)<.001&&(C=0),i.roundLengths&&(C=Math.floor(C)),T%i.slidesPerGroup==0&&
u.push(C),h.push(C)):(i.roundLengths&&(C=Math.floor(C)),(T-
Math.min(e.params.slidesPerGroupSkip,T))%e.params.slidesPerGroup==0&&u.push(C),h.pus
h(C),C=C+E+b),e.virtualSize+=E+b,S=E,T+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+g,a&&
l&&("slide"===i.effect||"coverflow"===i.effect)&&n.css({width:`${e.virtualSize+i.spaceBetw
een}px`}),i.setWrapperSize&&n.css({[t("width")]:`${e.virtualSize+i.spaceBetween}px`}),y&&e.
grid.updateWrapperSize(E,u,t),!i.centeredSlides){const t=[];for(let s=0;s<u.length;s+=1){let
n=u[s];i.roundLengths&&(n=Math.floor(n)),u[s]<=e.virtualSize-
r&&t.push(n)}u=t,Math.floor(e.virtualSize-r)-Math.floor(u[u.length-
1])>1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==i.spaceBetween){const
s=e.isHorizontal()&&a?"marginLeft":t("marginRight");c.filter(((e,t)=>!i.cssMode||t!==c.lengt
h-1)).css({[s]:`${b}px`})}if(i.centeredSlides&&i.centeredSlidesBounds){let
e=0;f.forEach((t=>{e+=t+(i.spaceBetween?i.spaceBetween:0)})),e-=i.spaceBetween;const
t=e-r;u=u.map((e=>e<0?-m:e>t?t+g:e))}if(i.centerInsufficientSlides){let
e=0;if(f.forEach((t=>{e+=t+(i.spaceBetween?i.spaceBetween:0)})),e-
=i.spaceBetween,e<r){const t=(r-e)/2;u.forEach(((e,s)=>{u[s]=e-
t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSi
zesGrid:f}),i.centeredSlides&&i.cssMode&&!i.centeredSlidesBounds){$(e.wrapperEl,"--
swiper-centered-offset-before",-u[0]+"px"),$(e.wrapperEl,"--swiper-centered-offset-
after",e.size/2-f[f.length-1]/2+"px");const t=-e.snapGrid[0],s=-
e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s)
)}if(p!==d&&e.emit("slidesLengthChange"),u.length!==v&&(e.params.watchOverflow&&e.ch
eckOverflow(),e.emit("snapGridLengthChange")),h.length!==w&&e.emit("slidesGridLengthC
hange"),i.watchSlidesProgress&&e.updateSlidesOffset(),!(o||i.cssMode||"slide"!==i.effect&
&"fade"!==i.effect)){const t=`${i.containerModifierClass}backface-
hidden`,s=e.$el.hasClass(t);p<=i.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.re
moveClass(t)}},updateAutoHeight:function(e){const
t=this,s=[],i=t.virtual&&t.params.virtual.enabled;let n,r=0;"number"==typeof
e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const
a=e=>i?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-
index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesP
erView>1)if(t.params.centeredSlides)(t.visibleSlides||C([])).each((e=>{s.push(e)}));else
for(n=0;n<Math.ceil(t.params.slidesPerView);n+=1){const
e=t.activeIndex+n;if(e>t.slides.length&&!i)break;s.push(a(e))}else
s.push(a(t.activeIndex));for(n=0;n<s.length;n+=1)if(void 0!==s[n]){const
e=s[n].offsetHeight;r=e>r?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlides
Offset:function(){const e=this,t=e.slides;for(let
s=0;s<t.length;s+=1)t[s].swiperSlideOffset=e.isHorizontal()?t[s].offsetLeft:t[s].offsetTop},upd
ateSlidesProgress:function(e){void 0===e&&(e=this&&this.translate||0);const
t=this,s=t.params,{slides:i,rtlTranslate:n,snapGrid:r}=t;if(0===i.length)return;void
0===i[0].swiperSlideOffset&&t.updateSlidesOffset();let a=-
e;n&&(a=e),i.removeClass(s.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(le
t e=0;e<i.length;e+=1){const l=i[e];let
o=l.swiperSlideOffset;s.cssMode&&s.centeredSlides&&(o-=i[0].swiperSlideOffset);const
d=(a+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),c=(a-
r[0]+(s.centeredSlides?t.minTranslate():0)-o)/(l.swiperSlideSize+s.spaceBetween),p=-(a-
o),u=p+t.slidesSizesGrid[e];(p>=0&&p<t.size-
1||u>1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(
e),i.eq(e).addClass(s.slideVisibleClass)),l.progress=n?-d:d,l.originalProgress=n?-
c:c}t.visibleSlides=C(t.visibleSlides)},updateProgress:function(e){const t=this;if(void
0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const
s=t.params,i=t.maxTranslate()-t.minTranslate();let{progress:n,isBeginning:r,isEnd:a}=t;const
l=r,o=a;0===i?(n=0,r=!0,a=!0):(n=(e-
t.minTranslate())/i,r=n<=0,a=n>=1),Object.assign(t,{progress:n,isBeginning:r,isEnd:a}),(s.watc
hSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.e
mit("reachBeginning toEdge"),a&&!o&&t.emit("reachEnd
toEdge"),(l&&!r||o&&!a)&&t.emit("fromEdge"),t.emit("progress",n)},updateSlidesClasses:fu
nction(){const
e=this,{slides:t,params:s,$wrapperEl:i,activeIndex:n,realIndex:r}=e,a=e.virtual&&s.virtual.en
abled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass}
${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass}
${s.slideDuplicatePrevClass}`),l=a?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-
index="${n}"]`):t.eq(n),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClas
s)?i.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-
index="${r}"]`).addClass(s.slideDuplicateActiveClass):i.children(`.${s.slideClass}.${s.slideDupli
cateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let
o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.
eq(0),o.addClass(s.slideNextClass));let
d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.
eq(-
1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?i.children(`.${s.sli
deClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-
index")}"]`).addClass(s.slideDuplicateNextClass):i.children(`.${s.slideClass}.${s.slideDuplicate
Class}[data-swiper-slide-index="${o.attr("data-swiper-slide-
index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?i.children(`
.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-
slide-
index")}"]`).addClass(s.slideDuplicatePrevClass):i.children(`.${s.slideClass}.${s.slideDuplicateC
lass}[data-swiper-slide-index="${d.attr("data-swiper-slide-
index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:fu
nction(e){const t=this,s=t.rtlTranslate?t.translate:-
t.translate,{slidesGrid:i,snapGrid:n,params:r,activeIndex:a,realIndex:l,snapIndex:o}=t;let
d,c=e;if(void 0===c){for(let e=0;e<i.length;e+=1)void 0!==i[e+1]?s>=i[e]&&s<i[e+1]-(i[e+1]-
i[e])/2?c=e:s>=i[e]&&s<i[e+1]&&(c=e+1):s>=i[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void
0===c)&&(c=0)}if(n.indexOf(s)>=0)d=n.indexOf(s);else{const
e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-
e)/r.slidesPerGroup)}if(d>=n.length&&(d=n.length-1),c===a)return
void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const
p=parseInt(t.slides.eq(c).attr("data-swiper-slide-
index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:a,activeIndex:c}),t.em
it("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.ini
tialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function
(e){const t=this,s=t.params,i=C(e).closest(`.${s.slideClass}`)[0];let n,r=!1;if(i)for(let
e=0;e<t.slides.length;e+=1)if(t.slides[e]===i){r=!0,n=e;break}if(!i||!r)return
t.clickedSlide=void 0,void(t.clickedIndex=void
0);t.clickedSlide=i,t.virtual&&t.params.virtual.enabled?t.clickedIndex=parseInt(C(i).attr("dat
a-swiper-slide-index"),10):t.clickedIndex=n,s.slideToClickedSlide&&void
0!==t.clickedIndex&&t.clickedIndex!==t.activeIndex&&t.slideToClickedSlide()}};const
D={getTranslate:function(e){void
0===e&&(e=this.isHorizontal()?"x":"y");const{params:t,rtlTranslate:s,translate:i,$wrapperEl:
n}=this;if(t.virtualTranslate)return s?-i:i;if(t.cssMode)return i;let r=y(n[0],e);return s&&(r=-
r),r||0},setTranslate:function(e,t){const
s=this,{rtlTranslate:i,params:n,$wrapperEl:r,wrapperEl:a,progress:l}=s;let
o,d=0,c=0;s.isHorizontal()?d=i?-
e:e:c=e,n.roundLengths&&(d=Math.floor(d),c=Math.floor(c)),n.cssMode?a[s.isHorizontal()?"
scrollLeft":"scrollTop"]=s.isHorizontal()?-d:-
c:n.virtualTranslate||r.transform(`translate3d(${d}px, ${c}px,
0px)`),s.previousTranslate=s.translate,s.translate=s.isHorizontal()?d:c;const
p=s.maxTranslate()-s.minTranslate();o=0===p?0:(e-
s.minTranslate())/p,o!==l&&s.updateProgress(e),s.emit("setTranslate",s.translate,t)},minTra
nslate:function(){return-this.snapGrid[0]},maxTranslate:function(){return-
this.snapGrid[this.snapGrid.length-1]},translateTo:function(e,t,s,i,n){void 0===e&&(e=0),void
0===t&&(t=this.params.speed),void 0===s&&(s=!0),void 0===i&&(i=!0);const
r=this,{params:a,wrapperEl:l}=r;if(r.animating&&a.preventInteractionOnTransition)return!1;
const o=r.minTranslate(),d=r.maxTranslate();let
c;if(c=i&&e>o?o:i&&e<d?d:e,r.updateProgress(c),a.cssMode){const
e=r.isHorizontal();if(0===t)l[e?"scrollLeft":"scrollTop"]=-
c;else{if(!r.support.smoothScroll)return P({swiper:r,targetPosition:-
c,side:e?"left":"top"}),!0;l.scrollTo({[e?"left":"top"]:-c,behavior:"smooth"})}return!0}return
0===t?(r.setTransition(0),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,n),r.emit("tr
ansitionEnd"))):(r.setTransition(t),r.setTranslate(c),s&&(r.emit("beforeTransitionStart",t,n),r.
emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd
||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&
&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionE
nd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTr
ansitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete
r.onTranslateToWrapperTransitionEnd,s&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEv
entListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEve
ntListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}};function
G(e){let{swiper:t,runCallbacks:s,direction:i,step:n}=e;const{activeIndex:r,previousIndex:a}=t;l
et
l=i;if(l||(l=r>a?"next":r<a?"prev":"reset"),t.emit(`transition${n}`),s&&r!==a){if("reset"===l)re
turn void
t.emit(`slideResetTransition${n}`);t.emit(`slideChangeTransition${n}`),"next"===l?t.emit(`slid
eNextTransition${n}`):t.emit(`slidePrevTransition${n}`)}}const
N={slideTo:function(e,t,s,i,n){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void
0===s&&(s=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error(`The 'index'
argument cannot have type other than 'number' or 'string'. [${typeof e}]
given.`);if("string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The
passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const
r=this;let
a=e;a<0&&(a=0);const{params:l,snapGrid:o,slidesGrid:d,previousIndex:c,activeIndex:p,rtlTra
nslate:u,wrapperEl:h,enabled:f}=r;if(r.animating&&l.preventInteractionOnTransition||!f&&!i
&&!n)return!1;const m=Math.min(r.params.slidesPerGroupSkip,a);let g=m+Math.floor((a-
m)/r.params.slidesPerGroup);g>=o.length&&(g=o.length-
1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const v=-
o[g];if(r.updateProgress(v),l.normalizeSlideIndex)for(let e=0;e<d.length;e+=1){const t=-
Math.floor(100*v),s=Math.floor(100*d[e]),i=Math.floor(100*d[e+1]);void
0!==d[e+1]?t>=s&&t<i-(i-
s)/2?a=e:t>=s&&t<i&&(a=e+1):t>=s&&(a=e)}if(r.initialized&&a!==p){if(!r.allowSlideNext&&v
<r.translate&&v<r.minTranslate())return!1;if(!r.allowSlidePrev&&v>r.translate&&v>r.maxTra
nslate()&&(p||0)!==a)return!1}let w;if(w=a>p?"next":a<p?"prev":"reset",u&&-
v===r.translate||!u&&v===r.translate)return
r.updateActiveIndex(a),l.autoHeight&&r.updateAutoHeight(),r.updateSlidesClasses(),"slide"!
==l.effect&&r.setTranslate(v),"reset"!==w&&(r.transitionStart(s,w),r.transitionEnd(s,w)),!1;if
(l.cssMode){const e=r.isHorizontal(),s=u?v:-v;if(0===t){const
t=r.virtual&&r.params.virtual.enabled;t&&(r.wrapperEl.style.scrollSnapType="none",r._imm
ediateVirtual=!0),h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrappe
rEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)r
eturn
P({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"s
mooth"})}return!0}return
r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(a),r.updateSlidesClasses(),r.emit("bef
oreTransitionStart",t,i),r.transitionStart(s,w),0===t?r.transitionEnd(s,w):r.animating||(r.anim
ating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e)
{r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionen
d",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransiti
onEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete
r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,w))}),r.$wrapperEl[0].addEventListener("
transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkit
TransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,i){if(void
0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof
e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string)
couldn't be converted to 'number'. [${e}] given.`);e=t}const n=this;let r=e;return
n.params.loop&&(r+=n.loopedSlides),n.slideTo(r,t,s,i)},slideNext:function(e,t,s){void
0===e&&(e=this.params.speed),void 0===t&&(t=!0);const
i=this,{animating:n,enabled:r,params:a}=i;if(!r)return i;let
l=a.slidesPerGroup;"auto"===a.slidesPerView&&1===a.slidesPerGroup&&a.slidesPerGroupA
uto&&(l=Math.max(i.slidesPerViewDynamic("current",!0),1));const
o=i.activeIndex<a.slidesPerGroupSkip?1:l;if(a.loop){if(n&&a.loopPreventsSlide)return!1;i.loo
pFix(),i._clientLeft=i.$wrapperEl[0].clientLeft}return
a.rewind&&i.isEnd?i.slideTo(0,e,t,s):i.slideTo(i.activeIndex+o,e,t,s)},slidePrev:function(e,t,s){
void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const
i=this,{params:n,animating:r,snapGrid:a,slidesGrid:l,rtlTranslate:o,enabled:d}=i;if(!d)return
i;if(n.loop){if(r&&n.loopPreventsSlide)return!1;i.loopFix(),i._clientLeft=i.$wrapperEl[0].client
Left}function c(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}const
p=c(o?i.translate:-i.translate),u=a.map((e=>c(e)));let h=a[u.indexOf(p)-1];if(void
0===h&&n.cssMode){let e;a.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=a[e>0?e-
1:e])}let f=0;if(void 0!==h&&(f=l.indexOf(h),f<0&&(f=i.activeIndex-
1),"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(f=f-
i.slidesPerViewDynamic("previous",!0)+1,f=Math.max(f,0))),n.rewind&&i.isBeginning){const
n=i.params.virtual&&i.params.virtual.enabled&&i.virtual?i.virtual.slides.length-
1:i.slides.length-1;return i.slideTo(n,e,t,s)}return
i.slideTo(f,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void
0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,i){void
0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);const n=this;let
r=n.activeIndex;const a=Math.min(n.params.slidesPerGroupSkip,r),l=a+Math.floor((r-
a)/n.params.slidesPerGroup),o=n.rtlTranslate?n.translate:-
n.translate;if(o>=n.snapGrid[l]){const e=n.snapGrid[l];o-e>(n.snapGrid[l+1]-
e)*i&&(r+=n.params.slidesPerGroup)}else{const e=n.snapGrid[l-1];o-e<=(n.snapGrid[l]-
e)*i&&(r-=n.params.slidesPerGroup)}return
r=Math.max(r,0),r=Math.min(r,n.slidesGrid.length-
1),n.slideTo(r,e,t,s)},slideToClickedSlide:function(){const
e=this,{params:t,$wrapperEl:s}=e,i="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.sli
desPerView;let
n,r=e.clickedIndex;if(t.loop){if(e.animating)return;n=parseInt(C(e.clickedSlide).attr("data-
swiper-slide-index"),10),t.centeredSlides?r<e.loopedSlides-i/2||r>e.slides.length-
e.loopedSlides+i/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-
index="${n}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),S((()=>{e.slideTo(r)}))):e.slideTo(r):
r>e.slides.length-i?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-
index="${n}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),S((()=>{e.slideTo(r)}))):e.slideTo(r)}
else e.slideTo(r)}};const H={loopCreate:function(){const
e=this,t=c(),{params:s,$wrapperEl:i}=e,n=i.children().length>0?C(i.children()[0].parentNode):
i;n.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let
r=n.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-
r.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let i=0;i<e;i+=1){const
e=C(t.createElement("div")).addClass(`${s.slideClass}
${s.slideBlankClass}`);n.append(e)}r=n.children(`.${s.slideClass}`)}}"auto"!==s.slidesPerView|
|s.loopedSlides||(s.loopedSlides=r.length),e.loopedSlides=Math.ceil(parseFloat(s.loopedSlid
es||s.slidesPerView,10)),e.loopedSlides+=s.loopAdditionalSlides,e.loopedSlides>r.length&&(
e.loopedSlides=r.length);const a=[],l=[];r.each(((t,s)=>{const
i=C(t);s<e.loopedSlides&&l.push(t),s<r.length&&s>=r.length-
e.loopedSlides&&a.push(t),i.attr("data-swiper-slide-index",s)}));for(let
e=0;e<l.length;e+=1)n.append(C(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass));for(let
e=a.length-1;e>=0;e-
=1)n.prepend(C(a[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){cons
t
e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:i,allowSlidePrev:n,al
lowSlideNext:r,snapGrid:a,rtlTranslate:l}=e;let
o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-a[t]-e.getTranslate();if(t<i){o=s.length-
3*i+t,o+=i;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}else
if(t>=s.length-i){o=-s.length+t+i,o+=i;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-
e.translate:e.translate)-
d)}e.allowSlidePrev=n,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$
wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.sli
deClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function
V(e){const
t=this,s=c(),i=u(),n=t.touchEventsData,{params:r,touches:a,enabled:l}=t;if(!l)return;if(t.anima
ting&&r.preventInteractionOnTransition)return;!t.animating&&r.cssMode&&r.loop&&t.loop
Fix();let o=e;o.originalEvent&&(o=o.originalEvent);let
d=C(o.target);if("wrapper"===r.touchEventsTarget&&!d.closest(t.wrapperEl).length)return;if
(n.isTouchEvent="touchstart"===o.type,!n.isTouchEvent&&"which"in
o&&3===o.which)return;if(!n.isTouchEvent&&"button"in
o&&o.button>0)return;if(n.isTouched&&n.isMoved)return;!!r.noSwipingClass&&""!==r.noS
wipingClass&&o.target&&o.target.shadowRoot&&e.path&&e.path[0]&&(d=C(e.path[0]));co
nst
p=r.noSwipingSelector?r.noSwipingSelector:`.${r.noSwipingClass}`,h=!(!o.target||!o.target.s
hadowRoot);if(r.noSwiping&&(h?function(e,t){return void 0===t&&(t=this),function
t(s){if(!s||s===c()||s===u())return null;s.assignedSlot&&(s=s.assignedSlot);const
i=s.closest(e);return
i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(p,d[0]):d.closest(p)[0]))return
void(t.allowClick=!0);if(r.swipeHandler&&!d.closest(r.swipeHandler)[0])return;a.currentX="t
ouchstart"===o.type?o.targetTouches[0].pageX:o.pageX,a.currentY="touchstart"===o.type?
o.targetTouches[0].pageY:o.pageY;const
f=a.currentX,m=a.currentY,g=r.edgeSwipeDetection||r.iOSEdgeSwipeDetection,v=r.edgeSwi
peThreshold||r.iOSEdgeSwipeThreshold;if(g&&(f<=v||f>=i.innerWidth-
v)){if("prevent"!==g)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,al
lowTouchCallbacks:!0,isScrolling:void 0,startMoving:void
0}),a.startX=f,a.startY=m,n.touchStartTime=T(),t.allowClick=!0,t.updateSize(),t.swipeDirectio
n=void 0,r.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==o.type){let
e=!0;d.is(n.focusableElements)&&(e=!1,"SELECT"===d[0].nodeName&&(n.isTouched=!1)),s.a
ctiveElement&&C(s.activeElement).is(n.focusableElements)&&s.activeElement!==d[0]&&s.a
ctiveElement.blur();const
i=e&&t.allowTouchMove&&r.touchStartPreventDefault;!r.touchStartForcePreventDefault&
&!i||d[0].isContentEditable||o.preventDefault()}t.params.freeMode&&t.params.freeMode.
enabled&&t.freeMode&&t.animating&&!r.cssMode&&t.freeMode.onTouchStart(),t.emit("t
ouchStart",o)}function q(e){const
t=c(),s=this,i=s.touchEventsData,{params:n,touches:r,rtlTranslate:a,enabled:l}=s;if(!l)return;l
et o=e;if(o.originalEvent&&(o=o.originalEvent),!i.isTouched)return
void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",o));if(i.isTouchEvent&&"to
uchmove"!==o.type)return;const
d="touchmove"===o.type&&o.targetTouches&&(o.targetTouches[0]||o.changedTouches[0]
),p="touchmove"===o.type?d.pageX:o.pageX,u="touchmove"===o.type?d.pageY:o.pageY;if(
o.preventedByNestedSwiper)return r.startX=p,void(r.startY=u);if(!s.allowTouchMove)return
C(o.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(r,{st
artX:p,startY:u,currentX:p,currentY:u}),i.touchStartTime=T()));if(i.isTouchEvent&&n.touchRel
easeOnEdges&&!n.loop)if(s.isVertical()){if(u<r.startY&&s.translate<=s.maxTranslate()||u>r.s
tartY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else
if(p<r.startX&&s.translate<=s.maxTranslate()||p>r.startX&&s.translate>=s.minTranslate())re
turn;if(i.isTouchEvent&&t.activeElement&&o.target===t.activeElement&&C(o.target).is(i.foc
usableElements))return
i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",o),o.targ
etTouches&&o.targetTouches.length>1)return;r.currentX=p,r.currentY=u;const
h=r.currentX-r.startX,f=r.currentY-
r.startY;if(s.params.threshold&&Math.sqrt(h**2+f**2)<s.params.threshold)return;if(void
0===i.isScrolling){let
e;s.isHorizontal()&&r.currentY===r.startY||s.isVertical()&&r.currentX===r.startX?i.isScrolling
=!1:h*h+f*f>=25&&(e=180*Math.atan2(Math.abs(f),Math.abs(h))/Math.PI,i.isScrolling=s.isH
orizontal()?e>n.touchAngle:90-
e>n.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",o),void
0===i.startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(i.startMoving=!0)),i.is
Scrolling)return
void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!n.cssMode&&o.cancelable&&o
.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&o.stopPropagation(),i.isMov
ed||(n.loop&&!n.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s
.animating&&s.$wrapperEl.trigger("webkitTransitionEnd
transitionend"),i.allowMomentumBounce=!1,!n.grabCursor||!0!==s.allowSlideNext&&!0!==
s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",o)),s.emit("sliderMove",o),i.i
sMoved=!0;let m=s.isHorizontal()?h:f;r.diff=m,m*=n.touchRatio,a&&(m=-
m),s.swipeDirection=m>0?"prev":"next",i.currentTranslate=m+i.startTranslate;let
g=!0,v=n.resistanceRatio;if(n.touchReleaseOnEdges&&(v=0),m>0&&i.currentTranslate>s.min
Translate()?(g=!1,n.resistance&&(i.currentTranslate=s.minTranslate()-1+(-
s.minTranslate()+i.startTranslate+m)**v)):m<0&&i.currentTranslate<s.maxTranslate()&&(g=
!1,n.resistance&&(i.currentTranslate=s.maxTranslate()+1-(s.maxTranslate()-i.startTranslate-
m)**v)),g&&(o.preventedByNestedSwiper=!0),!s.allowSlideNext&&"next"===s.swipeDirectio
n&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!s.allowSlideP
rev&&"prev"===s.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate
=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),n
.threshold>0){if(!(Math.abs(m)>n.threshold||i.allowThresholdMove))return
void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return
i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTr
anslate,void(r.diff=s.isHorizontal()?r.currentX-r.startX:r.currentY-
r.startY)}n.followFinger&&!n.cssMode&&((n.freeMode&&n.freeMode.enabled&&s.freeMod
e||n.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.free
Mode&&n.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgre
ss(i.currentTranslate),s.setTranslate(i.currentTranslate))}function F(e){const
t=this,s=t.touchEventsData,{params:i,touches:n,rtlTranslate:r,slidesGrid:a,enabled:l}=t;if(!l)r
eturn;let
o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s
.allowTouchCallbacks=!1,!s.isTouched)return
s.isMoved&&i.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);i.grab
Cursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.s
etGrabCursor(!1);const d=T(),c=d-s.touchStartTime;if(t.allowClick){const
e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t
.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap
doubleClick",o)}if(s.lastClickTime=T(),S((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||
!s.isMoved||!t.swipeDirection||0===n.diff||s.currentTranslate===s.startTranslate)return
s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let
p;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,p=i.followFinger?r?t.translate:-
t.translate:-
s.currentTranslate,i.cssMode)return;if(t.params.freeMode&&i.freeMode.enabled)return
void t.freeMode.onTouchEnd({currentPos:p});let u=0,h=t.slidesSizesGrid[0];for(let
e=0;e<a.length;e+=e<i.slidesPerGroupSkip?1:i.slidesPerGroup){const
t=e<i.slidesPerGroupSkip-1?1:i.slidesPerGroup;void
0!==a[e+t]?p>=a[e]&&p<a[e+t]&&(u=e,h=a[e+t]-a[e]):p>=a[e]&&(u=e,h=a[a.length-1]-
a[a.length-2])}let
f=null,m=null;i.rewind&&(t.isBeginning?m=t.params.virtual&&t.params.virtual.enabled&&t.
virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(f=0));const g=(p-
a[u])/h,v=u<i.slidesPerGroupSkip-
1?1:i.slidesPerGroup;if(c>i.longSwipesMs){if(!i.longSwipes)return void
t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(g>=i.longSwipesRatio?t.slideTo(i.rewin
d&&t.isEnd?f:u+v):t.slideTo(u)),"prev"===t.swipeDirection&&(g>1-
i.longSwipesRatio?t.slideTo(u+v):null!==m&&g<0&&Math.abs(g)>i.longSwipesRatio?t.slideT
o(m):t.slideTo(u))}else{if(!i.shortSwipes)return void
t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigat
ion.prevEl)?o.target===t.navigation.nextEl?t.slideTo(u+v):t.slideTo(u):("next"===t.swipeDire
ction&&t.slideTo(null!==f?f:u+v),"prev"===t.swipeDirection&&t.slideTo(null!==m?m:u))}}fun
ction j(){const
e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();c
onst{allowSlideNext:i,allowSlidePrev:n,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!
0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slide
sPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.leng
th-
1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.pau
sed&&e.autoplay.run(),e.allowSlidePrev=n,e.allowSlideNext=i,e.params.watchOverflow&&r!
==e.snapGrid&&e.checkOverflow()}function W(e){const
t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.pre
ventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation()
)))}function R(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:i}=e;if(!i)return;let
n;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-
t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();
const r=e.maxTranslate()-e.minTranslate();n=0===r?0:(e.translate-
e.minTranslate())/r,n!==e.progress&&e.updateProgress(s?-
e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let Y=!1;function X(){}const
U=(e,t)=>{const
s=c(),{params:i,touchEvents:n,el:r,wrapperEl:a,device:l,support:o}=e,d=!!i.nested,p="on"===
t?"addEventListener":"removeEventListener",u=t;if(o.touch){const
t=!("touchstart"!==n.start||!o.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1
};r[p](n.start,e.onTouchStart,t),r[p](n.move,e.onTouchMove,o.passiveListener?{passive:!1,ca
pture:d}:d),r[p](n.end,e.onTouchEnd,t),n.cancel&&r[p](n.cancel,e.onTouchEnd,t)}else
r[p](n.start,e.onTouchStart,!1),s[p](n.move,e.onTouchMove,d),s[p](n.end,e.onTouchEnd,!1);
(i.preventClicks||i.preventClicksPropagation)&&r[p]("click",e.onClick,!0),i.cssMode&&a[p]("
scroll",e.onScroll),i.updateOnWindowResize?e[u](l.ios||l.android?"resize orientationchange
observerUpdate":"resize observerUpdate",j,!0):e[u]("observerUpdate",j,!0)};const
K={attachEvents:function(){const
e=this,t=c(),{params:s,support:i}=e;e.onTouchStart=V.bind(e),e.onTouchMove=q.bind(e),e.o
nTouchEnd=F.bind(e),s.cssMode&&(e.onScroll=R.bind(e)),e.onClick=W.bind(e),i.touch&&!Y
&&(t.addEventListener("touchstart",X),Y=!0),U(e,"on")},detachEvents:function(){U(this,"off")
}},Q=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;const J={setBreakpoint:function(){const
e=this,{activeIndex:t,initialized:s,loopedSlides:i=0,params:n,$el:r}=e,a=n.breakpoints;if(!a||a
&&0===Object.keys(a).length)return;const
l=e.getBreakpoint(a,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;co
nst o=(l in a?a[l]:void
0)||e.originalParams,d=Q(e,n),c=Q(e,o),p=n.enabled;d&&!c?(r.removeClass(`${n.container
ModifierClass}grid ${n.containerModifierClass}grid-
column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${n.containerModifierClass}grid`),(
o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===n.grid.fill)&&r.addClass(`${n.c
ontainerModifierClass}grid-
column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{cons
t
s=n[t]&&n[t].enabled,i=o[t]&&o[t].enabled;s&&!i&&e[t].disable(),!s&&i&&e[t].enable()}));c
onst
u=o.direction&&o.direction!==n.direction,h=n.loop&&(o.slidesPerView!==n.slidesPerView||
u);u&&s&&e.changeDirection(),k(e.params,o);const
f=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlid
eNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!f?e.disable():
!p&&f&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopD
estroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-
i+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void
0===t&&(t="window"),!e||"container"===t&&!s)return;let i=!1;const
n=u(),r="window"===t?n.innerHeight:s.clientHeight,a=Object.keys(e).map((e=>{if("string"==
typeof e&&0===e.indexOf("@")){const
t=parseFloat(e.substr(1));return{value:r*t,point:e}}return{value:e,point:e}}));a.sort(((e,t)=>p
arseInt(e.value,10)-parseInt(t.value,10)));for(let
e=0;e<a.length;e+=1){const{point:r,value:l}=a[e];"window"===t?n.matchMedia(`(min-width:
${l}px)`).matches&&(i=r):l<=s.clientWidth&&(i=r)}return i||"max"}};const
Z={addClasses:function(){const
e=this,{classNames:t,params:s,rtl:i,$el:n,device:r,support:a}=e,l=function(e,t){const
s=[];return e.forEach((e=>{"object"==typeof
e?Object.keys(e).forEach((i=>{e[i]&&s.push(t+i)})):"string"==typeof
e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!a.touch},{"free-
mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:i},{grid:s.g
rid&&s.grid.rows>1},{"grid-
column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css
-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-
progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),n.addClass([...t].join(
"
")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.rem
oveClass(t.join(" ")),this.emitContainerClasses()}};const
ee={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssM
ode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!
0,focusableElements:"input, select, option, textarea, button, video,
label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeS
wipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:
!1,effect:"slide",breakpoints:void
0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGr
oupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBef
ore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!
0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes
:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,to
uchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1
,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlid
esProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlid
e:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides
:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlide
Next:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-
swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,container
ModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-
blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-
duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-
duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-
duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-
duplicate-prev",wrapperClass:"swiper-
wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function te(e,t){return function(s){void
0===s&&(s={});const i=Object.keys(s)[0],n=s[i];"object"==typeof
n&&null!==n?(["navigation","pagination","scrollbar"].indexOf(i)>=0&&!0===e[i]&&(e[i]={aut
o:!0}),i in e&&"enabled"in n?(!0===e[i]&&(e[i]={enabled:!0}),"object"!=typeof
e[i]||"enabled"in e[i]||(e[i].enabled=!0),e[i]||(e[i]={enabled:!1}),k(t,s)):k(t,s)):k(t,s)}}const
se={eventsEmitter:B,update:z,translate:D,transition:{setTransition:function(e,t){const
s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionS
tart:function(e,t){void 0===e&&(e=!0);const
s=this,{params:i}=s;i.cssMode||(i.autoHeight&&s.updateAutoHeight(),G({swiper:s,runCallba
cks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const
s=this,{params:i}=s;s.animating=!1,i.cssMode||(s.setTransition(0),G({swiper:s,runCallbacks:e
,direction:t,step:"End"}))}},slide:N,loop:H,grabCursor:{setGrabCursor:function(e){const
t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked|
|t.params.cssMode)return;const
s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.
cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const
e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["c
ontainer"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:K,brea
kpoints:J,checkOverflow:{checkOverflow:function(){const
e=this,{isLocked:t,params:s}=e,{slidesOffsetBefore:i}=s;if(i){const t=e.slides.length-
1,s=e.slidesGrid[t]+e.slidesSizesGrid[t]+2*i;e.isLocked=e.size>s}else
e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!
0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!=
=e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:Z,images:{loadImage:function(e,t
,s,i,n,r){const a=u();let l;function
o(){r&&r()}C(e).parent("picture")[0]||e.complete&&n?o():t?(l=new
a.Image,l.onload=o,l.onerror=o,i&&(l.sizes=i),s&&(l.srcset=s),t&&(l.src=t)):o()},preloadImage
s:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void
0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&
(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e
.$el.find("img");for(let s=0;s<e.imagesToLoad.length;s+=1){const
i=e.imagesToLoad[s];e.loadImage(i,i.currentSrc||i.getAttribute("src"),i.srcset||i.getAttribute
("srcset"),i.sizes||i.getAttribute("sizes"),!0,t)}}}},ie={};class ne{constructor(){let e,t;for(var
s=arguments.length,i=new
Array(s),n=0;n<s;n++)i[n]=arguments[n];if(1===i.length&&i[0].constructor&&"Object"===Obj
ect.prototype.toString.call(i[0]).slice(8,-
1)?t=i[0]:[e,t]=i,t||(t={}),t=k({},t),e&&!t.el&&(t.el=e),t.el&&C(t.el).length>1){const
e=[];return C(t.el).each((s=>{const i=k({},t,{el:s});e.push(new ne(i))})),e}const
r=this;r.__swiper__=!0,r.support=A(),r.device=I({userAgent:t.userAgent}),r.browser=_(),r.eve
ntsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isA
rray(t.modules)&&r.modules.push(...t.modules);const
a={};r.modules.forEach((e=>{e({swiper:r,extendParams:te(t,a),on:r.on.bind(r),once:r.once.bi
nd(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=k({},ee,a);return
r.params=k({},l,ie,t),r.originalParams=k({},r.params),r.passedParams=k({},t),r.params&&r.par
ams.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.par
ams.onAny&&r.onAny(r.params.onAny),r.$=C,Object.assign(r,{enabled:r.params.enabled,el:
e,classNames:[],slides:C(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizon
tal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIn
dex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating
:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEv
ents:function(){const
e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","
pointerup"];return
r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start
:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.t
ouchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void
0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void
0,startTranslate:void 0,allowThresholdMove:void
0,focusableElements:r.params.focusableElements,lastClickTime:T(),clickTimeout:void
0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void
0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,curre
ntX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&
&r.init(),r}enable(){const
e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"
))}disable(){const
e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disa
ble"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const
i=s.minTranslate(),n=(s.maxTranslate()-i)*e+i;s.translateTo(n,void
0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const
e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split("
").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.e
mit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return
t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-
slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const
e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const
i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slid
eClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void
0===t&&(t=!1);const{params:s,slides:i,slidesGrid:n,slidesSizesGrid:r,size:a,activeIndex:l}=this
;let o=1;if(s.centeredSlides){let e,t=i[l].swiperSlideSize;for(let
s=l+1;s<i.length;s+=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,o+=1,t>a&&(e=!0));for(let s=l-
1;s>=0;s-=1)i[s]&&!e&&(t+=i[s].swiperSlideSize,o+=1,t>a&&(e=!0))}else
if("current"===e)for(let e=l+1;e<i.length;e+=1){(t?n[e]+r[e]-n[l]<a:n[e]-n[l]<a)&&(o+=1)}else
for(let e=l-1;e>=0;e-=1){n[l]-n[e]<a&&(o+=1)}return o}update(){const
e=this;if(!e||e.destroyed)return;const{snapGrid:t,params:s}=e;function i(){const
t=e.rtlTranslate?-
1*e.translate:e.translate,s=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setT
ranslate(s),e.updateActiveIndex(),e.updateSlidesClasses()}let
n;s.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.up
dateSlidesClasses(),e.params.freeMode&&e.params.freeMode.enabled?(i(),e.params.autoH
eight&&e.updateAutoHeight()):(n=("auto"===e.params.slidesPerView||e.params.slidesPerVi
ew>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-
1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),n||i()),s.watchOverflow&&t!==e.snapGrid&&e.che
ckOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const
s=this,i=s.params.direction;return
e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(
s.$el.removeClass(`${s.params.containerModifierClass}${i}`).addClass(`${s.params.container
ModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertic
al"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}mo
unt(e){const t=this;if(t.mounted)return!0;const
s=C(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const
i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let
n=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const
t=C(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return
s.children?s.children(i()):C(s).children(i())})();if(0===n.length&&t.params.createElements){co
nst
e=c().createElement("div");n=C(e),e.className=t.params.wrapperClass,s.append(e),s.childre
n(`.${t.params.slideClass}`).each((e=>{n.append(e)}))}return
Object.assign(t,{$el:s,el:e,$wrapperEl:n,wrapperEl:n[0],mounted:!0,rtl:"rtl"===e.dir.toLower
Case()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===
e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-
box"===n.css("display")}),!0}init(e){const t=this;if(t.initialized)return
t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.a
ddClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchO
verflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.param
s.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.looped
Slides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallb
acksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,
t){void 0===e&&(e=!0),void 0===t&&(t=!0);const
s=this,{params:i,$el:n,$wrapperEl:r,slides:a}=s;return void
0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),i.loo
p&&s.loopDestroy(),t&&(s.removeClasses(),n.removeAttr("style"),r.removeAttr("style"),a&&
a.length&&a.removeClass([i.slideVisibleClass,i.slideActiveClass,i.slideNextClass,i.slidePrevCla
ss].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-
index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s
.$el[0].swiper=null,function(e){const
t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete
t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){k(ie,e)}static get
extendedDefaults(){return ie}static get defaults(){return ee}static
installModule(e){ne.prototype.__modules__||(ne.prototype.__modules__=[]);const
t=ne.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static
use(e){return
Array.isArray(e)?(e.forEach((e=>ne.installModule(e))),ne):(ne.installModule(e),ne)}}Object.k
eys(se).forEach((e=>{Object.keys(se[e]).forEach((t=>{ne.prototype[t]=se[e][t]}))})),ne.use([fu
nction(e){let{swiper:t,on:s,emit:i}=e;const n=u();let r=null,a=null;const
l=()=>{t&&!t.destroyed&&t.initialized&&(i("beforeResize"),i("resize"))},o=()=>{t&&!t.destroy
ed&&t.initialized&&i("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void
0!==n.ResizeObserver?t&&!t.destroyed&&t.initialized&&(r=new
ResizeObserver((e=>{a=n.requestAnimationFrame((()=>{const{width:s,height:i}=t;let
n=s,r=i;e.forEach((e=>{let{contentBoxSize:s,contentRect:i,target:a}=e;a&&a!==t.el||(n=i?i.wi
dth:(s[0]||s).inlineSize,r=i?i.height:(s[0]||s).blockSize)})),n===s&&r===i||l()}))})),r.observe(t.
el)):(n.addEventListener("resize",l),n.addEventListener("orientationchange",o))})),s("destroy
",(()=>{a&&n.cancelAnimationFrame(a),r&&r.unobserve&&t.el&&(r.unobserve(t.el),r=null),n
.removeEventListener("resize",l),n.removeEventListener("orientationchange",o)}))},function(
e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const r=[],a=u(),l=function(e,t){void
0===t&&(t={});const
s=new(a.MutationObserver||a.WebkitMutationObserver)((e=>{if(1===e.length)return void
n("observerUpdate",e[0]);const
t=function(){n("observerUpdate",e[0])};a.requestAnimationFrame?a.requestAnimationFram
e(t):a.setTimeout(t,0)}));s.observe(e,{attributes:void
0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void
0===t.characterData||t.characterData}),r.push(s)};s({observer:!1,observeParents:!1,observe
SlideChildren:!1}),i("init",(()=>{if(t.params.observer){if(t.params.observeParents){const
e=t.$el.parents();for(let
t=0;t<e.length;t+=1)l(e[t])}l(t.$el[0],{childList:t.params.observeSlideChildren}),l(t.$wrapperEl
[0],{attributes:!1})}})),i("destroy",(()=>{r.forEach((e=>{e.disconnect()})),r.splice(0,r.length)}))}
]);const re=ne;function ae(e,t,s,i){const n=c();return
e.params.createElements&&Object.keys(i).forEach((r=>{if(!s[r]&&!0===s.auto){let
a=e.$el.children(`.${i[r]}`)[0];a||(a=n.createElement("div"),a.className=i[r],e.$el.append(a))
,s[r]=a,t[r]=a}})),s}function le(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;function r(e){let
s;return e&&(s=C(e),t.params.uniqueNavElements&&"string"==typeof
e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function a(e,s){const
i=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](i.disabledClass),e[0
]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&
&e[t.isLocked?"addClass":"removeClass"](i.lockClass))}function
l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;a(s,t.isBeginning&&!t.para
ms.rewind),a(e,t.isEnd&&!t.params.rewind)}function
o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&t.slidePrev()}fu
nction
d(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&t.slideNext()}function
c(){const
e=t.params.navigation;if(t.params.navigation=ae(t,t.originalParams.navigation,t.params.navi
gation,{nextEl:"swiper-button-next",prevEl:"swiper-button-
prev"}),!e.nextEl&&!e.prevEl)return;const
s=r(e.nextEl),i=r(e.prevEl);s&&s.length>0&&s.on("click",d),i&&i.length>0&&i.on("click",o),O
bject.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:i,prevEl:i&&i[0]}),t.enabled||(s&
&s.addClass(e.lockClass),i&&i.addClass(e.lockClass))}function
p(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",d),e.removeClass(t.
params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.na
vigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"s
wiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-
lock",navigationDisabledClass:"swiper-navigation-
disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},i("init",(()=>{!1===
t.params.navigation.enabled?u():(c(),l())})),i("toEdge fromEdge lock
unlock",(()=>{l()})),i("destroy",(()=>{p()})),i("enable
disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addC
lass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.n
avigation.lockClass)})),i("click",((e,s)=>{const{$nextEl:i,$prevEl:r}=t.navigation,a=s.target;if(t.
params.navigation.hideOnClick&&!C(a).is(r)&&!C(a).is(i)){if(t.pagination&&t.params.paginati
on&&t.params.pagination.clickable&&(t.pagination.el===a||t.pagination.el.contains(a)))ret
urn;let
e;i?e=i.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hid
denClass)),n(!0===e?"navigationShow":"navigationHide"),i&&i.toggleClass(t.params.navigati
on.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const
u=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),p()};Object.assign(t.navig
ation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),c(),l()},dis
able:u,update:l,init:c,destroy:p})}function oe(e){return void
0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function
de(e){let{swiper:t,extendParams:s,on:i,emit:n}=e;const r="swiper-pagination";let
a;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,re
nderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"b
ullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFraction
Total:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-
`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-
hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-
progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-
lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-
vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let
l=0;function
o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el
.length}function d(e,s){const{bulletActiveClass:i}=t.params.pagination;e[s]().addClass(`${i}-
${s}`)[s]().addClass(`${i}-${s}-${s}`)}function c(){const
e=t.rtl,s=t.params.pagination;if(o())return;const
i=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el
;let c;const p=t.params.loop?Math.ceil((i-
2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(c=Math.ceil(
(t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),c>i-1-2*t.loopedSlides&&(c-=i-
2*t.loopedSlides),c>p-1&&(c-
=p),c<0&&"bullets"!==t.params.paginationType&&(c=p+c)):c=void
0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.
pagination.bullets.length>0){const i=t.pagination.bullets;let
n,o,p;if(s.dynamicBullets&&(a=i.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(
t.isHorizontal()?"width":"height",a*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>
1&&void 0!==t.previousIndex&&(l+=c-(t.previousIndex-
t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-
1:l<0&&(l=0)),n=Math.max(c-l,0),o=n+(Math.min(i.length,s.dynamicMainBullets)-
1),p=(o+n)/2),i.removeClass(["","-next","-next-next","-prev","-prev-prev","-
main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)i.each((e=>{const
t=C(e),i=t.index();i===c&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(i>=n&&i<=o&
&t.addClass(`${s.bulletActiveClass}-
main`),i===n&&d(t,"prev"),i===o&&d(t,"next"))}));else{const
e=i.eq(c),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const
e=i.eq(n),a=i.eq(o);for(let e=n;e<=o;e+=1)i.eq(e).addClass(`${s.bulletActiveClass}-
main`);if(t.params.loop)if(r>=i.length){for(let e=s.dynamicMainBullets;e>=0;e-
=1)i.eq(i.length-e).addClass(`${s.bulletActiveClass}-main`);i.eq(i.length-
s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else
d(e,"prev"),d(a,"next");else d(e,"prev"),d(a,"next")}}if(s.dynamicBullets){const
n=Math.min(i.length,s.dynamicMainBullets+4),r=(a*n-a)/2-
p*a,l=e?"right":"left";i.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(o
e(s.currentClass)).text(s.formatFractionCurrent(c+1)),r.find(oe(s.totalClass)).text(s.formatFra
ctionTotal(p))),"progressbar"===s.type){let
e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizont
al":"vertical";const i=(c+1)/p;let
n=1,a=1;"horizontal"===e?n=i:a=i,r.find(oe(s.progressbarFillClass)).transform(`translate3d(0,
0,0) scaleX(${n})
scaleY(${a})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.re
nderCustom(t,c+1,p)),n("paginationRender",r[0])):n("paginationUpdate",r[0]),t.params.watc
hOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function
p(){const e=t.params.pagination;if(o())return;const
s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,i=t.pagination.$e
l;let r="";if("bullets"===e.type){let n=t.params.loop?Math.ceil((s-
2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.para
ms.freeMode.enabled&&!t.params.loop&&n>s&&(n=s);for(let
s=0;s<n;s+=1)e.renderBullet?r+=e.renderBullet.call(t,s,e.bulletClass):r+=`<${e.bulletElement}
class="${e.bulletClass}"></${e.bulletElement}>`;i.html(r),t.pagination.bullets=i.find(oe(e.bull
etClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.
totalClass):`<span class="${e.currentClass}"></span> / <span
class="${e.totalClass}"></span>`,i.html(r)),"progressbar"===e.type&&(r=e.renderProgressba
r?e.renderProgressbar.call(t,e.progressbarFillClass):`<span
class="${e.progressbarFillClass}"></span>`,i.html(r)),"custom"!==e.type&&n("paginationRen
der",t.pagination.$el[0])}function
u(){t.params.pagination=ae(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-
pagination"});const e=t.params.pagination;if(!e.el)return;let
s=C(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof
e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>C(e).parents(".swiper")[0]
===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modi
fierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.t
ype&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-
dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.typ
e&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("cl
ick",oe(e.bulletClass),(function(e){e.preventDefault();let
s=C(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})
),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function
h(){const e=t.params.pagination;if(o())return;const
s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.re
moveClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.paginati
on.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&
&s.off("click",oe(e.bulletClass))}i("init",(()=>{!1===t.params.pagination.enabled?f():(u(),p(),c(
))})),i("activeIndexChange",(()=>{(t.params.loop||void
0===t.snapIndex)&&c()})),i("snapIndexChange",(()=>{t.params.loop||c()})),i("slidesLengthCh
ange",(()=>{t.params.loop&&(p(),c())})),i("snapGridLengthChange",(()=>{t.params.loop||(p(),
c())})),i("destroy",(()=>{h()})),i("enable
disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.param
s.pagination.lockClass)})),i("lock unlock",(()=>{c()})),i("click",((e,s)=>{const
i=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&
&r.length>0&&!C(i).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigatio
n.nextEl&&i===t.navigation.nextEl||t.navigation.prevEl&&i===t.navigation.prevEl))return;co
nst
e=r.hasClass(t.params.pagination.hiddenClass);n(!0===e?"paginationShow":"paginationHide
"),r.toggleClass(t.params.pagination.hiddenClass)}}));const
f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagi
nation.$el.addClass(t.params.pagination.paginationDisabledClass),h()};Object.assign(t.pagin
ation,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.paginat
ion.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),u(),p()
,c()},disable:f,render:p,update:c,init:u,destroy:h})}window.addEventListener("load",(function
(e){document.querySelector(".about__slider")&&new
re(".about__slider",{modules:[le],observer:!0,observeParents:!0,slidesPerView:4,spaceBetw
een:0,autoHeight:!0,speed:800,breakpoints:{320:{slidesPerView:1.5,spaceBetween:4,autoH
eight:!0},560:{slidesPerView:3},768:{slidesPerView:4,spaceBetween:4}},on:{}}),document.qu
erySelector(".team__slider")&&new
re(".team__slider",{modules:[le],observer:!0,observeParents:!0,slidesPerView:3,spaceBetwe
en:16,autoHeight:!0,speed:800,breakpoints:{320:{slidesPerView:1.5,spaceBetween:16,auto
Height:!0},560:{slidesPerView:3},768:{slidesPerView:3,spaceBetween:16}},on:{}}),document.
querySelector(".crypto__slider")&&new
re(".crypto__slider",{modules:[le],observer:!0,observeParents:!0,slidesPerView:4,spaceBetw
een:8,autoHeight:!0,speed:800,breakpoints:{320:{slidesPerView:1.5,spaceBetween:4,autoH
eight:!0},560:{slidesPerView:3},768:{slidesPerView:4,spaceBetween:4}},on:{}}),document.qu
erySelector(".virtual__slider")&&new
re(".virtual__slider",{modules:[le],observer:!0,observeParents:!0,slidesPerView:2,spaceBetw
een:8,autoHeight:!0,speed:800,breakpoints:{320:{slidesPerView:1.5,spaceBetween:8,autoH
eight:!0},768:{slidesPerView:2,spaceBetween:8}},on:{}}),document.querySelector(".data__sli
der")&&new
re(".data__slider",{modules:[le],observer:!0,observeParents:!0,slidesPerView:3,spaceBetwe
en:16,autoHeight:!0,speed:800,breakpoints:{320:{slidesPerView:1.5,spaceBetween:16,auto
Height:!0},560:{slidesPerView:3},768:{slidesPerView:3,spaceBetween:16}},on:{}}),document.
querySelector(".projects__slider")&&new
re(".projects__slider",{modules:[le,de],observer:!0,observeParents:!0,slidesPerView:1,space
Between:16,speed:800,pagination:{el:".swiper-
pagination",type:"bullets",clickable:!0}})}));let ce=!1;setTimeout((()=>{if(ce){let e=new
Event("windowScroll");window.addEventListener("scroll",(function(t){document.dispatchEve
nt(e)}))}}),0);const pe=document.querySelectorAll("._anim-items");if(pe.length>0){function
ue(){for(let e=0;e<pe.length;e++){const t=pe[e],s=t.offsetHeight,i=he(t).top,n=4;let
r=window.innerHeight-s/n;s>window.innerHeight&&(r=window.innerHeight-
window.innerHeight/n),pageYOffset>i-
r&&pageYOffset<i+s?t.classList.add("_active"):t.classList.contains("_anim-no-
hide")||t.classList.remove("_active")}}function he(e){const
t=e.getBoundingClientRect(),s=window.pageXOffset||document.documentElement.scrollLef
t,i=window.pageYOffset||document.documentElement.scrollTop;return{top:t.top+i,left:t.lef
t+s}}window.addEventListener("scroll",ue),setTimeout((()=>{ue()}),300)}window.FLS=!0,func
tion(e){let t=new
Image;t.onload=t.onerror=function(){e(2==t.height)},t.src="data:image/webp;base64,UklGRj
oAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//
LwYAAA"}((function(e){let t=!0===e?"webp":"no-
webp";document.documentElement.classList.add(t)})),e.any()&&document.documentEleme
nt.classList.add("touch"),document.querySelector(".icon-
menu")&&document.addEventListener("click",(function(e){s&&e.target.closest(".icon-
menu")&&(((e=500)=>{document.documentElement.classList.contains("lock")?i(e):n(e)})(),d
ocument.documentElement.classList.toggle("menu-open"))})),function(){function
e(e){if("click"===e.type){const t=e.target;if(t.closest("[data-goto]")){const s=t.closest("[data-
goto]"),i=s.dataset.goto?s.dataset.goto:"",n=!!s.hasAttribute("data-goto-
header"),r=s.dataset.gotoSpeed?s.dataset.gotoSpeed:500,l=s.dataset.gotoTop?parseInt(s.da
taset.gotoTop):0;a(i,n,r,l),e.preventDefault()}}else
if("watcherCallback"===e.type&&e.detail){const
t=e.detail.entry,s=t.target;if("navigator"===s.dataset.watch){document.querySelector("[data
-goto]._navigator-active");let e;if(s.id&&document.querySelector(`[data-
goto="#${s.id}"]`))e=document.querySelector(`[data-goto="#${s.id}"]`);else
if(s.classList.length)for(let t=0;t<s.classList.length;t++){const
i=s.classList[t];if(document.querySelector(`[data-
goto=".${i}"]`)){e=document.querySelector(`[data-
goto=".${i}"]`);break}}t.isIntersecting?e&&e.classList.add("_navigator-
active"):e&&e.classList.remove("_navigator-
active")}}}if(document.addEventListener("click",e),document.addEventListener("watcherCall
back",e),t()){let
e;document.querySelector(`#${t()}`)?e=`#${t()}`:document.querySelector(`.${t()}`)&&(e=`.${t(
)}`),e&&a(e,!0,500,20)}}(),function(){ce=!0;const
e=document.querySelector("header.header"),t=e.hasAttribute("data-scroll-
show"),s=e.dataset.scrollShow?e.dataset.scrollShow:500,i=e.dataset.scroll?e.dataset.scroll:1
;let n,r=0;document.addEventListener("windowScroll",(function(a){const
l=window.scrollY;clearTimeout(n),l>=i?(!e.classList.contains("_header-
scroll")&&e.classList.add("_header-scroll"),t&&(l>r?e.classList.contains("_header-
show")&&e.classList.remove("_header-show"):!e.classList.contains("_header-
show")&&e.classList.add("_header-
show"),n=setTimeout((()=>{!e.classList.contains("_header-
show")&&e.classList.add("_header-show")}),s))):(e.classList.contains("_header-
scroll")&&e.classList.remove("_header-scroll"),t&&e.classList.contains("_header-
show")&&e.classList.remove("_header-show")),r=l<=0?0:l}))}()})();