diff --git a/.gitignore b/.gitignore index a9cc8ab..0f264b2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,35 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -vendor -Gemfile.lock \ No newline at end of file +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/404.md b/404.md deleted file mode 100644 index f47f57f..0000000 --- a/404.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Error 404 | Moh Ravi Dwi Putra -titlecontent: Error 404 -desc: Oops! That page can't be found. -layout: default -permalink: /404 ---- diff --git a/Gemfile b/Gemfile deleted file mode 100644 index f57631e..0000000 --- a/Gemfile +++ /dev/null @@ -1,32 +0,0 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! -# gem "jekyll", "~> 4.1.1" -# This is the default theme for new Jekyll sites. You may change this to anything you like. -#gem "minima", "~> 2.5" -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", group: :jekyll_plugins -#gem 'jekyll-seo-tag' -# If you have any plugins, put them here! -# group :jekyll_plugins do - -# end - - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -# platforms :mingw, :x64_mingw, :mswin, :jruby do -# gem "tzinfo", "~> 1.2" -# gem "tzinfo-data" -# end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] -gem "faraday-retry", "~> 2.0" \ No newline at end of file diff --git a/README.md b/README.md index e5d0750..f4da3c4 100644 --- a/README.md +++ b/README.md @@ -1 +1,34 @@ -[![Netlify Status](https://api.netlify.com/api/v1/badges/064108c1-9222-468f-815c-02c6c2827824/deploy-status)](https://app.netlify.com/sites/rdp77/deploys) +This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. diff --git a/_config.yml b/_config.yml deleted file mode 100644 index f489722..0000000 --- a/_config.yml +++ /dev/null @@ -1,34 +0,0 @@ -title: Moh Ravi Dwi Putra -email: ravidwiputra@gmail.com -github_username: rdp77 -author: Moh Ravi Dwi Putra -description: >- - Moh Ravi Dwi Putra's profile website, which contains important information - about him such as your resume, portfolio, awards, certification, and contact. -keywords: - Moh Ravi Dwi Putra, Rafi Dwi Putra, Profile Ravi, Profile Rafi, Profile Website, Resume, - Portfolio, Awards, Certification, and contact -copyright: Make it as beautiful and functional as possible. -social: - name: Moh Ravi Dwi Putra - links: - - https://github.com/rdp77 - - https://facebook.com/ravidwiputra77 - - https://www.linkedin.com/in/rdp77/ - - https://www.instagram.com/raviravdp/ - - https://www.youtube.com/@ravidwiputra77 -url: https://ravidwiputra.my.id -lang: en_US -google_site_verification: 8FB68inDTkKFOhWeQv2l6zfpF7oYJEn6wqZDOTDd6dk -twitter: - username: ravi77__ - card: summary -facebook: - app_id: 273593853241776 - publisher: https://facebook.com/ravidwiputra77 - admins: 100003118966989 -logo: /assets/img/avatar.png -image: /assets/img/avatar.png -plugins: - - jekyll-seo-tag - - jekyll-sitemap diff --git a/_data/about.yml b/_data/about.yml deleted file mode 100644 index bb6d192..0000000 --- a/_data/about.yml +++ /dev/null @@ -1,14 +0,0 @@ -- title: Name - desc: Moh Ravi Dwi Putra - -- title: Gender - desc: Male - -- title: Job - desc: Software Engineer - -- title: Citizenship - desc: Indonesia - -- title: Residence - desc: Surabaya diff --git a/_data/awards.yml b/_data/awards.yml deleted file mode 100644 index 16dced0..0000000 --- a/_data/awards.yml +++ /dev/null @@ -1,2 +0,0 @@ -- vendor: SMK Rajasa - title: Certificate Of Award For The 2rd Class Winner diff --git a/_data/awards2.yml b/_data/awards2.yml deleted file mode 100644 index c192c42..0000000 --- a/_data/awards2.yml +++ /dev/null @@ -1,2 +0,0 @@ -- vendor: SMK Rajasa - title: Certificate Of Award For The 3rd Class Winner diff --git a/_data/certification.yml b/_data/certification.yml deleted file mode 100644 index abc26e2..0000000 --- a/_data/certification.yml +++ /dev/null @@ -1,35 +0,0 @@ -- vendor: SoloLearn - title: HTML Fundamentals Course - code: "#1014-11011596" - -- vendor: Skill Academy - title: "SEO 101: Cara Membuat Website Eksis Di Halaman Depan Google" - code: B4BBTZ7UKBA4NK - -- vendor: Skill Academy - title: "SEO 101: Cara Membuat Website Eksis Di Halaman Depan Google" - code: HLR743SYF8FE88 - -- vendor: SoloLearn - title: PHP Tutorial Course - code: "#1059-11011596" - -- vendor: SoloLearn - title: CSS Fundamentals Course - code: "#1023-11011596" - -- vendor: Dicoding - title: "Lintasarta Developer Talk Online Series #2 - Simple Animation on Android" - code: - -- vendor: Dicoding - title: "Lintasarta Developer Talk Online Series #3 - Boost Android App using Android Jetpack" - code: - -- vendor: Dicoding - title: "Lintasarta Developer Talk Online Series #4 - Best Practices and Lessons Learned as a Developer" - code: - -- vendor: Udemy - title: SEO Tutorial for Beginners - code: UC-fc84da27-f5dd-4476-b753-201d4bbdae2e \ No newline at end of file diff --git a/_data/certification2.yml b/_data/certification2.yml deleted file mode 100644 index 1fb9bff..0000000 --- a/_data/certification2.yml +++ /dev/null @@ -1,35 +0,0 @@ -- vendor: Oracle Academy - title: Primavera Practice In The Classroom - code: - -- vendor: Surabaya Hacker Link - title: Unmask Cyber Crime - code: - -- vendor: SoloLearn - title: Javascript Tutorial Course - code: "#1024-11011596" - -- vendor: SoloLearn - title: SQL Fundamentals Course - code: "#1060-11011596" - -- vendor: Cisco - title: Cisco IT Essentials - code: - -- vendor: Dharma Cendekia Utama - title: Basic English Conversation - code: DCU12016009 - -- vendor: Dinas Komunikasi Dan Informatika - title: Praktek Kerja Industri Diskominfo - code: 072/4550/436.6.8/2017 - -- vendor: SMK Rajasa - title: Praktek Kerja Industri Broadband Learning Center - code: 106/SMKR.Sby/H/Prakerin/VIII/2017 - -- vendor: PT. Rahajasa Media Internet - title: Certificate Of Competency - code: 135A/PIMP/SMKR.SBY/III/2018 diff --git a/_data/description.yml b/_data/description.yml deleted file mode 100644 index 3e5fcbf..0000000 --- a/_data/description.yml +++ /dev/null @@ -1,5 +0,0 @@ -- desc: Software Engineer -- desc: Tech Enthusiast -- desc: Content Creator -- desc: Digital Marketer -- desc: Full Stack Developer diff --git a/_data/education.yml b/_data/education.yml deleted file mode 100644 index ca5f99a..0000000 --- a/_data/education.yml +++ /dev/null @@ -1,26 +0,0 @@ -- date: 2006 - 2012 - name: SDN Gading VII - desc: - In this elementary school, I was educated to be an active student and put forward - communication with friends and teachers, in this elementary school it is also my teaching to dare - to ask questions. - -- date: 2012 - 2015 - name: SMP PGRI 1 - desc: - This Junior High School gives me an interesting impression about the fun of learning and - exploring something, in this Junior High School I am also very interested in Technology and Information. - -- date: 2015 - 2018 - name: SMK RAJASA - desc: - I go deeper into the learning process and always focus on 1 area. I am also taught how to run a - project well. In this Vocational High School I am very enthusiastic because basically it - focuses on 1 field. - -- date: 2018 - Now - name: University 17 Agustus Surabaya - desc: - In this level I was taught how to manage and manage projects very well, I was also taught - how to communicate more quickly and accurately with other people, especially people - who were never known. diff --git a/_data/experience.yml b/_data/experience.yml deleted file mode 100644 index fb86fa1..0000000 --- a/_data/experience.yml +++ /dev/null @@ -1,29 +0,0 @@ -- date: 2017 - name: Internship - Diskominfo - desc: - Plunge into the community, to help employees as teachers and share the knowledge I gained - in school, such as teaching word processing applications, data and computer use in the surrounding - community. Apart from that I perform maintenance and optimization on each and every computer used for - learning so that users are more comfortable when using these facilities. - -- date: 2017 - 2018 - name: Technician - Freelance - desc: - Work directly as a team to do jobs such as network installations, network configuration using - mikrotik to perform troubleshooting on a network. - -- date: 2018 - name: Technician - Indihome - desc: - Installing the internet using a provider from Telkom, this installation is carried out from the - customer's home to the Optical Distribution Point or ODP, after that configure the access point - according to the ip server given, then by configuring the dhcp server on the access point so that - the access point can provide ip dhcp client to client. - -- date: 2020 - 2021 - name: Web Developer - CV. Batu Beling - desc: - Become a Fullstack Developer by developing and creating internal systems the company uses the Laravel - Framework, besides that I also act as IT Support if needed and carry out routine maintenance of the - CMS website. I also set the strategy related to digital marketing needed to Get more feedback on - social media and websites. \ No newline at end of file diff --git a/_data/focused.yml b/_data/focused.yml deleted file mode 100644 index d862327..0000000 --- a/_data/focused.yml +++ /dev/null @@ -1,35 +0,0 @@ -- icon: ion-code - name: Front-end - desc: - Always learn new technology by relying on the information spread on the internet and then - applying it to the web front-end. - -- icon: ion-ipad - name: Mobile Application - desc: - Developing mobile applications that are native and hybrid, I prefer developing Android than - iOS because Android is open-source and can be developed freely. - -- icon: ion-ios-search-strong - name: Investigation and analysis - desc: - Learn to investigate and analyze a system in order to run a system that is good, optimal, fast - and most importantly cheaper. - -- icon: ion-speakerphone - name: Digital Marketing - desc: - Always updating information in order to develop digital marketing that is accurate, precise and - always updated. - -- icon: ion-help-buoy - name: Awesome Supports - desc: - Providing support to the community, clients and even internet citizens like me to create - blogs and join the community. - -- icon: ion-social-chrome - name: Web Development - desc: - Learn new things about web development further and learn how to make a web that is lightweight, good - and doesn't lose its functionality. diff --git a/_data/knowledge.yml b/_data/knowledge.yml deleted file mode 100644 index 2b1b3e8..0000000 --- a/_data/knowledge.yml +++ /dev/null @@ -1,22 +0,0 @@ -- name: Website hosting -- name: Android apps -- name: Advertising services include -- name: Digital marketing -- name: Visual Basic .NET -- name: Mobile framework (Flutter) -- name: Web framework (Laravel, CodeIgniter) -- name: CSS, HTML, Javascript -- name: Wordpress -- name: CSS framework (Bootstrap, Materialize, etc) -- name: Library -- name: Github version control -- name: Network Installation -- name: Search engine optimization -- name: Apps design (Prototype and Mockup) -- name: Web design (Prototype and Mockup) -- name: Content creator -- name: Optimization apps and website -- name: Database management -- name: Modern style web and apps -- name: Operating system optimization and repair -- name: Mikrotik diff --git a/_data/portfolio.yml b/_data/portfolio.yml deleted file mode 100644 index 4ef8658..0000000 --- a/_data/portfolio.yml +++ /dev/null @@ -1,234 +0,0 @@ -- title: "Network Installation: Universitas Airlangga" - category: Networking - image: assets/img/portfolio/network.png - titlecontent: "Network Installation: Universitas Airlangga Campus B" - content: At the Airlangga University campus B, precisely at the address - Jl. Airlangga No.4 - 6, Airlangga, Kec. Gubeng, Surabaya City. - We did the network installation installed on the 5th floor of the building, - the installation was carried out by 6 people and also including me. - username: admin - password: admin - action: View Project - link: https://goo.gl/maps/ZkWpsyRzMRwq2LwR8 - class: f-networking - display: none - -- title: Dryas Library - category: Programming - image: assets/img/portfolio/dryaslibrary.png - titlecontent: "Dryas Library: Laravel Framework" - content: - Dryas Library is a site created in the PHP programming language and uses - the very popular framework, Laravel. Meanwhile, the database uses PostGreSQL - to manage data, to manage data live using AJAX. Dryas library was developed in - a team and to handle the project using Github as version control in order to avoid unwanted errors. - username: admin - password: 123123123 - action: View Project - link: https://dryaslibrary.herokuapp.com/ - class: f-programming - display: unset - -- title: Network Installation and Configuration - category: Networking - image: assets/img/portfolio/network.png - titlecontent: "Network Installation and Configuration: WARUNK ZAMAN NOW" - content: - Precisely at the address Jl. Taman Apsari, Surabaya City WARUNK ZAMAN NOW - (Formerly Sisha Al-Ajib) initiates network setup requests and performs configuration services. - The installation is carried out in 3 points and uses the telkom network which is used to control - the traffic using the MikroTik as a router. - username: admin - password: admin - action: View Project - link: jhttps://goo.gl/maps/MhkcngqNK75H7Tan8 - class: f-networking - display: none - -- title: Corona - category: Programming - image: assets/img/portfolio/corona.png - titlecontent: "Corona: Laravel Framework" - content: - In 2020 all countries will experience a very serious chaos, the chaos originates from the new virus, - namely corona (COVID-19). Therefore this website was created, this website aims to provide information - on victims who were affected by this deadly virus. This website provides information about total, - positive, recovery and death and can also be viewed by province. This website is built with the Laravel - framework and data based on the country of Indonesia, where the data is distributed via third party APIs. - username: admin - password: admin - action: View Project - link: https://statuscorona.herokuapp.com/ - class: f-programming - display: none - -- title: Traffic Light Simulation - category: Programming - image: assets/img/portfolio/code.png - titlecontent: Traffic Light Simulation with VB.NET - content: - This is a simple program that simulates a traffic light at a crossroad, this simulation uses a car - that will run alternately with the time it runs at the traffic light. This program is built with the - VB.NET programming language. - username: admin - password: admin - action: View Project - link: http://www.youtube.com/watch?v=k47bCNacV9M - class: f-programming - display: none - -- title: Sports Skuyy - category: Mobile - image: assets/img/portfolio/sportsskuyy.png - titlecontent: "Sports Skuyy: The Android application keeps track of sports activities" - content: - This application is a simple application that functions to track exercise activities based on the - level that has been executed, this application also records calories from the movements that have been - done. In each movement, the number of calories burned is set and this is based on our team's analysis. - This application is built using Java and Firebase as realtime data. - username: admin - password: admin - action: View Project - link: https://github.com/rdp77/SportsSkuyy/releases - class: f-mobile - display: none - -- title: Stack Games - category: Programming - image: assets/img/portfolio/stack-games.png - titlecontent: "Stack Games With Laravel Framework And MongoDB" - content: - Stack games are made to meet the needs of gamers for game portals and game information, stack - games are built with backend features that can be accessed through - this page and - are not published on the front page of the stack games, this makes the page even more difficult to - access. The game stack was created using MongoDB as the NoSQL database. - username: admin - password: admin - action: View Project - link: https://stackgames.herokuapp.com/ - class: f-programming - display: unset - -- title: Personal Web - category: Programming - image: assets/img/portfolio/code.png - titlecontent: "A Personal Web For Everyone And Free" - content: - This is my small project that aims to organize information about myself. This personal web is - built using html and css, while for version 2 and above, it uses third-party libraries for css and - javascript. Meanwhile, the latest version itself is a website that is currently running using a static - site generator assisted by Jekyll. - username: admin - password: admin - action: View Project - link: https://github.com/rdp77/personal-web - class: f-programming - display: none - -- title: Messi Kasih Khitan - category: CMS - image: assets/img/portfolio/wordpress.png - titlecontent: "Messi Kasih Khitan" - content: - Portfolio website developed using wordpress and has several special features such as mark location, - google business and contacts available on the website. - username: admin - password: admin - action: View Project - link: https://sunattidaksakit.com/ - class: f-cms - display: none - -- title: Our Enterprise - category: Programming - image: assets/img/portfolio/ourenterprise.png - titlecontent: "Our Enterprise Build With Gatsby" - content: - Our Enterprise is a service business that serves quite a number of services, our enterprise - website is created using Javascript with the help of Gatsby and deployed using Vercel. - username: admin - password: admin - action: View Project - link: https://ourenterprise.vercel.app/ - class: f-programming - display: none - -- title: Pode - category: Programming - image: assets/img/portfolio/code.png - titlecontent: "Portofolio Design With Jekyll" - content: - Website portfolio for designers built using the popular Ruby programming language and using - the Jekyll static site generator to make websites faster in data processing and loading. - username: admin - password: admin - action: View Project - link: https://pode.netlify.app/ - class: f-programming - display: none - -- title: Veyaz - category: Programming - image: assets/img/portfolio/veyaz.png - titlecontent: "Veyaz Laravel Templates" - content: - A premium template designed for Laravel programmers to make their work easier, Veyaz is already - integrated with several much-needed libraries and is certainly very helpful. For UI Veyaz uses - Bootstrap and jQuery as a javascript library, Veyaz also supports asynchronous web applications - (server side processing) such as AJAX and axios. - username: admin - password: admin - action: View Project - link: https://veyaz.herokuapp.com/ - class: f-programming - display: unset - -- title: KSP Sumber Rejeki - category: Programming - image: assets/img/portfolio/ksp-sumberrejeki.png - titlecontent: "KSP Sumber Rejeki" - content: - This cooperative application aims to calculate the estimate of how many months or weeks the - borrower can borrow from the cooperative, this application can also issue reports on a daily, - weekly or monthly basis. With this application, borrowers and sales or cooperative owners can carry - out savings and loan activities smoothly. This application is made using the Laravel Framework and Ajax - as Server Side Processing. - username: admin - password: admin - action: View Project - link: https://ksp-sumberrejeki.com/ - class: f-programming - display: unset - -- title: Andromart - category: Programming - image: assets/img/portfolio/andromart.png - titlecontent: "P.O.S Andromart" - content: - An application that uses the Point Of Sale system as its main feature, and other supporting - features such as inventory (warehouse) and company profile. Andromart itself uses the Laravel - Framework and Ajax as Server Side Processing. - username: admin - password: admin - action: View Project - link: https://andromartindonesia.com/ - class: f-programming - display: unset - -- title: Report Management Batu Beling - category: Programming - image: assets/img/portfolio/batubeling.png - titlecontent: "Report Management Batu Beling" - content: - "As the name suggests, this application is used to record daily reports that employees do for 1 day - and this application can also print reports from daily, weekly and monthly. This application records - the progress made by employees, hours, and work status, this application uses the Laravel Framework - and Ajax as Server Side Processing. Login using Username : admin | - Password : admin" - username: admin - password: admin - action: View Project - link: https://report-management-bb.herokuapp.com/ - class: f-programming - display: unset \ No newline at end of file diff --git a/_includes/about.html b/_includes/about.html deleted file mode 100644 index c86d3ec..0000000 --- a/_includes/about.html +++ /dev/null @@ -1,38 +0,0 @@ - -
-
-
-
About Me
-
-
- -
-
-

- {{ content }} -

-
-
    - {% for abt in site.data.about %} -
  • - {{ abt.title }}: - {{ abt.desc }} -
  • - {% if forloop.index == 1 %} -
  • - Age: - -
  • - {% endif %} {% endfor %} -
-
- -
-
-
-
\ No newline at end of file diff --git a/_includes/awards.html b/_includes/awards.html deleted file mode 100644 index 4160456..0000000 --- a/_includes/awards.html +++ /dev/null @@ -1,94 +0,0 @@ - - -
-
-
-
-
-
Awards
-
-
- {% for awd in site.data.awards %} -
-
{{ awd.vendor }}
-
{{ awd.title }}
-
- {% endfor %} -
-
-
-
-
-
-
- {% for awds in site.data.awards2 %} -
-
{{ awds.vendor }}
-
{{ awds.title }}
-
- {% endfor %} -
-
-
-
-
- -
-
-
-
-
-
Certification
-
-
- {% for ctf in site.data.certification %} -
-
{{ ctf.vendor }}
-
{{ ctf.title }}
-

- {{ ctf.code }} -

-
- {% endfor %} -
-
-
-
-
-
-
- {% for ctfs in site.data.certification2 %} -
-
{{ ctfs.vendor }}
-
{{ ctfs.title }}
-

- {{ ctfs.code }} -

-
- {% endfor %} -
-
-
-
-
\ No newline at end of file diff --git a/_includes/breadcrumb_awards.html b/_includes/breadcrumb_awards.html deleted file mode 100644 index ceb9a11..0000000 --- a/_includes/breadcrumb_awards.html +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/_includes/breadcrumb_contact.html b/_includes/breadcrumb_contact.html deleted file mode 100644 index 4adcd0a..0000000 --- a/_includes/breadcrumb_contact.html +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/_includes/breadcrumb_portfolio.html b/_includes/breadcrumb_portfolio.html deleted file mode 100644 index 56a27bf..0000000 --- a/_includes/breadcrumb_portfolio.html +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/_includes/breadcrumb_resume.html b/_includes/breadcrumb_resume.html deleted file mode 100644 index 3a595b0..0000000 --- a/_includes/breadcrumb_resume.html +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/_includes/filter.html b/_includes/filter.html deleted file mode 100644 index 4ed36a1..0000000 --- a/_includes/filter.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
- - - - - -
-
\ No newline at end of file diff --git a/_includes/focused.html b/_includes/focused.html deleted file mode 100644 index d552111..0000000 --- a/_includes/focused.html +++ /dev/null @@ -1,17 +0,0 @@ - -
-
-
-
Focused
-
-
- {% for foc in site.data.focused %} -
-
-
{{ foc.name }}
-

{{ foc.desc }}

-
- {% endfor %} -
-
-
diff --git a/_includes/footer.html b/_includes/footer.html deleted file mode 100644 index d5af1ae..0000000 --- a/_includes/footer.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - -
-
-
-
- - - - -
- - - - - - - - - - - - - \ No newline at end of file diff --git a/_includes/hardskills.html b/_includes/hardskills.html deleted file mode 100644 index b62c613..0000000 --- a/_includes/hardskills.html +++ /dev/null @@ -1,36 +0,0 @@ - -
-
-
-
Hard Skills
-
-
-
    -
  • -
    Programming
    -
    -
    -
    -
  • -
  • -
    Networking
    -
    -
    -
    -
  • -
  • -
    Design
    -
    -
    -
    -
  • -
  • -
    Content Creator
    -
    -
    -
    -
  • -
-
-
-
diff --git a/_includes/header.html b/_includes/header.html deleted file mode 100644 index 7725219..0000000 --- a/_includes/header.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - - {{ page.title }} - - - - - - {% seo title=false %} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {% if page.name == 'awards.md' %} {% include breadcrumb_awards.html %} {% - elsif page.name == 'resume.md' %} {% include breadcrumb_resume.html %} {% - elsif page.name == 'portfolio.md' %} {% include breadcrumb_portfolio.html %} - {% elsif page.name == 'contact.md' %} {% include breadcrumb_contact.html %} {% - endif %} - \ No newline at end of file diff --git a/_includes/knowledge.html b/_includes/knowledge.html deleted file mode 100644 index 3da3ced..0000000 --- a/_includes/knowledge.html +++ /dev/null @@ -1,17 +0,0 @@ - -
-
-
-
Knowledge
-
-
-
    - {% for knw in site.data.knowledge %} -
  • -
    {{ knw.name }}
    -
  • - {% endfor %} -
-
-
-
\ No newline at end of file diff --git a/_includes/loading.html b/_includes/loading.html deleted file mode 100644 index 61f4dc3..0000000 --- a/_includes/loading.html +++ /dev/null @@ -1,13 +0,0 @@ - -
-
-
-
-
-

loading...

-
- -
-
-
-
\ No newline at end of file diff --git a/_includes/navigation.html b/_includes/navigation.html deleted file mode 100644 index 1127a3e..0000000 --- a/_includes/navigation.html +++ /dev/null @@ -1,28 +0,0 @@ - -
-
- - -
-
\ No newline at end of file diff --git a/_includes/otherskills.html b/_includes/otherskills.html deleted file mode 100644 index 77e337c..0000000 --- a/_includes/otherskills.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-
-
-
Other Skills
-
-
-
    -
  • -
    Windows
    -
    -
    -
    -
  • -
  • -
    Version Control
    -
    -
    -
    -
  • -
  • -
    Linux
    -
    -
    -
    -
  • -
  • -
    UI / UX
    -
    -
    -
    -
  • -
  • -
    Microcontroller
    -
    -
    -
    -
  • -
-
-
-
diff --git a/_includes/portfolio.html b/_includes/portfolio.html deleted file mode 100644 index 2211031..0000000 --- a/_includes/portfolio.html +++ /dev/null @@ -1,54 +0,0 @@ -{% for port in site.data.portfolio %} - -{% endfor %} \ No newline at end of file diff --git a/_includes/resume.html b/_includes/resume.html deleted file mode 100644 index f7c7723..0000000 --- a/_includes/resume.html +++ /dev/null @@ -1,39 +0,0 @@ - -
-
-
-
-
-
Experience
-
-
- {% for exp in site.data.experience %} -
-
{{ exp.date }}
-
{{ exp.name }}
-

- {{ exp.desc }} -

-
- {% endfor %} -
-
-
-
-
Education
-
-
- {% for edu in site.data.education %} -
-
{{ edu.date }}
-
{{ edu.name }}
-

- {{ edu.desc }} -

-
- {% endfor %} -
-
-
-
-
\ No newline at end of file diff --git a/_includes/softskills.html b/_includes/softskills.html deleted file mode 100644 index 291fccd..0000000 --- a/_includes/softskills.html +++ /dev/null @@ -1,48 +0,0 @@ - -
-
-
-
Soft Skills
-
-
-
    -
  • -
    Can work in team
    -
    -
    -
    -
  • -
  • -
    Good communication skills
    -
    -
    -
    -
  • -
  • -
    Open and logical thinking
    -
    -
    -
    -
  • -
  • -
    Have a leadership spirit
    -
    -
    -
    -
  • -
  • -
    Reliable and committed
    -
    -
    -
    -
  • -
  • -
    Have enthusiasm and willingness to learn
    -
    -
    -
    -
  • -
-
-
-
diff --git a/_layouts/content.html b/_layouts/content.html deleted file mode 100644 index 80edc0a..0000000 --- a/_layouts/content.html +++ /dev/null @@ -1,110 +0,0 @@ - - - -{% include header.html %} - - - - {% include loading.html %} - - -
- - {% include navigation.html %} - - -
- - -
-
-
-
-
- {{ page.titlecontent }} -
- - -
-
-
- -
- - - {% if page.name == 'contact.md' %} -
-
-
-
-
-
Phone
-
- -
-
-
-
-
Address
-
-
-

Surabaya, Jawa Timur, Indonesia

-
-
-
-
-
-
Email
-
- -
-
-
-
-
-
- -
-
- -
-
- -
- - -
-
-
-
- {% else %} -
-
- {% include filter.html %} -
- {% include portfolio.html %} -
-
-
-
- {% endif %} -
- {% include footer.html %} - - - \ No newline at end of file diff --git a/_layouts/default.html b/_layouts/default.html deleted file mode 100644 index 05079af..0000000 --- a/_layouts/default.html +++ /dev/null @@ -1,51 +0,0 @@ - - - -{% include header.html %} - - - - {% include loading.html %} - - -
- - {% include navigation.html %} - - -
- - -
-
-
-
- {% if page.name == 'index.md' %} -
- {{ page.first }} {{ page.last }} -
-
- {% for desc in site.data.description %} -

{{ desc.desc }}

- {% endfor %} -
- - {% else %} -
- {{ page.titlecontent }} -
-
-

{{ page.desc }}

-
- - {% endif %} -
-
-
-
- -
- {% include footer.html %} - - - \ No newline at end of file diff --git a/_layouts/simple.html b/_layouts/simple.html deleted file mode 100644 index 3d61034..0000000 --- a/_layouts/simple.html +++ /dev/null @@ -1,57 +0,0 @@ - - - -{% include header.html %} - - - - {% include loading.html %} - - -
- - {% include navigation.html %} - - -
- - -
-
-
-
-
- {% if page.name == 'awards.md' %} - {{ page.first }} {{ page.last }} - {% else %} - {{ page.titlecontent }} - {% endif %} -
- - -
-
-
- - - -
- - {% if page.name == 'awards.md' %} - {% include awards.html %} - {% else %} - {% include about.html %} - {% include resume.html %} - {% include softskills.html %} - {% include hardskills.html %} - {% include otherskills.html %} - {% include knowledge.html %} - {% include focused.html %} - {% endif %} -
- {% include footer.html %} - - - \ No newline at end of file diff --git a/assets/css/animate.min.css b/assets/css/animate.min.css deleted file mode 100644 index 333d740..0000000 --- a/assets/css/animate.min.css +++ /dev/null @@ -1,9 +0,0 @@ - -@charset "UTF-8"; -/*! - * animate.css - https://animate.style/ - * Version - 4.1.0 - * Licensed under the MIT license - http://opensource.org/licenses/MIT - * - * Copyright (c) 2020 Animate.css - */:root{--animate-duration:1s;--animate-delay:1s;--animate-repeat:1}.animate__animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-duration:var(--animate-duration);animation-duration:var(--animate-duration);-webkit-animation-fill-mode:both;animation-fill-mode:both}.animate__animated.animate__infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animate__animated.animate__repeat-1{-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-animation-iteration-count:var(--animate-repeat);animation-iteration-count:var(--animate-repeat)}.animate__animated.animate__repeat-2{-webkit-animation-iteration-count:2;animation-iteration-count:2;-webkit-animation-iteration-count:calc(var(--animate-repeat)*2);animation-iteration-count:calc(var(--animate-repeat)*2)}.animate__animated.animate__repeat-3{-webkit-animation-iteration-count:3;animation-iteration-count:3;-webkit-animation-iteration-count:calc(var(--animate-repeat)*3);animation-iteration-count:calc(var(--animate-repeat)*3)}.animate__animated.animate__delay-1s{-webkit-animation-delay:1s;animation-delay:1s;-webkit-animation-delay:var(--animate-delay);animation-delay:var(--animate-delay)}.animate__animated.animate__delay-2s{-webkit-animation-delay:2s;animation-delay:2s;-webkit-animation-delay:calc(var(--animate-delay)*2);animation-delay:calc(var(--animate-delay)*2)}.animate__animated.animate__delay-3s{-webkit-animation-delay:3s;animation-delay:3s;-webkit-animation-delay:calc(var(--animate-delay)*3);animation-delay:calc(var(--animate-delay)*3)}.animate__animated.animate__delay-4s{-webkit-animation-delay:4s;animation-delay:4s;-webkit-animation-delay:calc(var(--animate-delay)*4);animation-delay:calc(var(--animate-delay)*4)}.animate__animated.animate__delay-5s{-webkit-animation-delay:5s;animation-delay:5s;-webkit-animation-delay:calc(var(--animate-delay)*5);animation-delay:calc(var(--animate-delay)*5)}.animate__animated.animate__faster{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-duration:calc(var(--animate-duration)/2);animation-duration:calc(var(--animate-duration)/2)}.animate__animated.animate__fast{-webkit-animation-duration:.8s;animation-duration:.8s;-webkit-animation-duration:calc(var(--animate-duration)*0.8);animation-duration:calc(var(--animate-duration)*0.8)}.animate__animated.animate__slow{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2)}.animate__animated.animate__slower{-webkit-animation-duration:3s;animation-duration:3s;-webkit-animation-duration:calc(var(--animate-duration)*3);animation-duration:calc(var(--animate-duration)*3)}@media (prefers-reduced-motion:reduce),print{.animate__animated{-webkit-animation-duration:1ms!important;animation-duration:1ms!important;-webkit-transition-duration:1ms!important;transition-duration:1ms!important;-webkit-animation-iteration-count:1!important;animation-iteration-count:1!important}.animate__animated[class*=Out]{opacity:0}}@-webkit-keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}@keyframes bounce{0%,20%,53%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-30px,0) scaleY(1.1);transform:translate3d(0,-30px,0) scaleY(1.1)}70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06);-webkit-transform:translate3d(0,-15px,0) scaleY(1.05);transform:translate3d(0,-15px,0) scaleY(1.05)}80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0) scaleY(.95);transform:translateZ(0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-4px,0) scaleY(1.02);transform:translate3d(0,-4px,0) scaleY(1.02)}}.animate__bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.animate__flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__pulse{-webkit-animation-name:pulse;animation-name:pulse;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shakeX{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.animate__shakeX{-webkit-animation-name:shakeX;animation-name:shakeX}@-webkit-keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}@keyframes shakeY{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}20%,40%,60%,80%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}}.animate__shakeY{-webkit-animation-name:shakeY;animation-name:shakeY}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.animate__headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.animate__swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes wobble{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.animate__jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes heartBeat{0%{-webkit-transform:scale(1);transform:scale(1)}14%{-webkit-transform:scale(1.3);transform:scale(1.3)}28%{-webkit-transform:scale(1);transform:scale(1)}42%{-webkit-transform:scale(1.3);transform:scale(1.3)}70%{-webkit-transform:scale(1);transform:scale(1)}}.animate__heartBeat{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1.3s;animation-duration:1.3s;-webkit-animation-duration:calc(var(--animate-duration)*1.3);animation-duration:calc(var(--animate-duration)*1.3);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}@-webkit-keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInDown{0%{-webkit-transform:translateY(-1200px) scale(.7);transform:translateY(-1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInDown{-webkit-animation-name:backInDown;animation-name:backInDown}@-webkit-keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInLeft{0%{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInLeft{-webkit-animation-name:backInLeft;animation-name:backInLeft}@-webkit-keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInRight{0%{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}80%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInRight{-webkit-animation-name:backInRight;animation-name:backInRight}@-webkit-keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes backInUp{0%{-webkit-transform:translateY(1200px) scale(.7);transform:translateY(1200px) scale(.7);opacity:.7}80%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}.animate__backInUp{-webkit-animation-name:backInUp;animation-name:backInUp}@-webkit-keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}@keyframes backOutDown{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(700px) scale(.7);transform:translateY(700px) scale(.7);opacity:.7}}.animate__backOutDown{-webkit-animation-name:backOutDown;animation-name:backOutDown}@-webkit-keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}@keyframes backOutLeft{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(-2000px) scale(.7);transform:translateX(-2000px) scale(.7);opacity:.7}}.animate__backOutLeft{-webkit-animation-name:backOutLeft;animation-name:backOutLeft}@-webkit-keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}@keyframes backOutRight{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateX(0) scale(.7);transform:translateX(0) scale(.7);opacity:.7}to{-webkit-transform:translateX(2000px) scale(.7);transform:translateX(2000px) scale(.7);opacity:.7}}.animate__backOutRight{-webkit-animation-name:backOutRight;animation-name:backOutRight}@-webkit-keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}@keyframes backOutUp{0%{-webkit-transform:scale(1);transform:scale(1);opacity:1}20%{-webkit-transform:translateY(0) scale(.7);transform:translateY(0) scale(.7);opacity:.7}to{-webkit-transform:translateY(-700px) scale(.7);transform:translateY(-700px) scale(.7);opacity:.7}}.animate__backOutUp{-webkit-animation-name:backOutUp;animation-name:backOutUp}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.animate__bounceIn{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0) scaleY(3);transform:translate3d(0,-3000px,0) scaleY(3)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0) scaleY(.9);transform:translate3d(0,25px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,-10px,0) scaleY(.95);transform:translate3d(0,-10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,5px,0) scaleY(.985);transform:translate3d(0,5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0) scaleX(3);transform:translate3d(-3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0) scaleX(1);transform:translate3d(25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(-10px,0,0) scaleX(.98);transform:translate3d(-10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(5px,0,0) scaleX(.995);transform:translate3d(5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0) scaleX(3);transform:translate3d(3000px,0,0) scaleX(3)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0) scaleX(1);transform:translate3d(-25px,0,0) scaleX(1)}75%{-webkit-transform:translate3d(10px,0,0) scaleX(.98);transform:translate3d(10px,0,0) scaleX(.98)}90%{-webkit-transform:translate3d(-5px,0,0) scaleX(.995);transform:translate3d(-5px,0,0) scaleX(.995)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0) scaleY(5);transform:translate3d(0,3000px,0) scaleY(5)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}75%{-webkit-transform:translate3d(0,10px,0) scaleY(.95);transform:translate3d(0,10px,0) scaleY(.95)}90%{-webkit-transform:translate3d(0,-5px,0) scaleY(.985);transform:translate3d(0,-5px,0) scaleY(.985)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.animate__bounceOut{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0) scaleY(.985);transform:translate3d(0,10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0) scaleY(.9);transform:translate3d(0,-20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0) scaleY(3);transform:translate3d(0,2000px,0) scaleY(3)}}.animate__bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0) scaleX(.9);transform:translate3d(20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0) scaleX(2);transform:translate3d(-2000px,0,0) scaleX(2)}}.animate__bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0) scaleX(.9);transform:translate3d(-20px,0,0) scaleX(.9)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0) scaleX(2);transform:translate3d(2000px,0,0) scaleX(2)}}.animate__bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0) scaleY(.985);transform:translate3d(0,-10px,0) scaleY(.985)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0) scaleY(.9);transform:translate3d(0,20px,0) scaleY(.9)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0) scaleY(3);transform:translate3d(0,-2000px,0) scaleY(3)}}.animate__bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate__fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopLeft{-webkit-animation-name:fadeInTopLeft;animation-name:fadeInTopLeft}@-webkit-keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInTopRight{0%{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInTopRight{-webkit-animation-name:fadeInTopRight;animation-name:fadeInTopRight}@-webkit-keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomLeft{-webkit-animation-name:fadeInBottomLeft;animation-name:fadeInBottomLeft}@-webkit-keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInBottomRight{0%{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__fadeInBottomRight{-webkit-animation-name:fadeInBottomRight;animation-name:fadeInBottomRight}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.animate__fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.animate__fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.animate__fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.animate__fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.animate__fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}@keyframes fadeOutTopLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,-100%,0);transform:translate3d(-100%,-100%,0)}}.animate__fadeOutTopLeft{-webkit-animation-name:fadeOutTopLeft;animation-name:fadeOutTopLeft}@-webkit-keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}@keyframes fadeOutTopRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,-100%,0);transform:translate3d(100%,-100%,0)}}.animate__fadeOutTopRight{-webkit-animation-name:fadeOutTopRight;animation-name:fadeOutTopRight}@-webkit-keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}@keyframes fadeOutBottomRight{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(100%,100%,0);transform:translate3d(100%,100%,0)}}.animate__fadeOutBottomRight{-webkit-animation-name:fadeOutBottomRight;animation-name:fadeOutBottomRight}@-webkit-keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}@keyframes fadeOutBottomLeft{0%{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}to{opacity:0;-webkit-transform:translate3d(-100%,100%,0);transform:translate3d(-100%,100%,0)}}.animate__fadeOutBottomLeft{-webkit-animation-name:fadeOutBottomLeft;animation-name:fadeOutBottomLeft}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(-1turn);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-190deg);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}50%{-webkit-transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);transform:perspective(400px) scaleX(1) translateZ(150px) rotateY(-170deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);transform:perspective(400px) scale3d(.95,.95,.95) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}to{-webkit-transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);transform:perspective(400px) scaleX(1) translateZ(0) rotateY(0deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animate__animated.animate__flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.animate__flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.animate__flipOutX{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.animate__flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s;-webkit-animation-duration:calc(var(--animate-duration)*0.75);animation-duration:calc(var(--animate-duration)*0.75);-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInRight{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg);opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInRight{-webkit-animation-name:lightSpeedInRight;animation-name:lightSpeedInRight;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes lightSpeedInLeft{0%{-webkit-transform:translate3d(-100%,0,0) skewX(30deg);transform:translate3d(-100%,0,0) skewX(30deg);opacity:0}60%{-webkit-transform:skewX(-20deg);transform:skewX(-20deg);opacity:1}80%{-webkit-transform:skewX(5deg);transform:skewX(5deg)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__lightSpeedInLeft{-webkit-animation-name:lightSpeedInLeft;animation-name:lightSpeedInLeft;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOutRight{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.animate__lightSpeedOutRight{-webkit-animation-name:lightSpeedOutRight;animation-name:lightSpeedOutRight;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}@keyframes lightSpeedOutLeft{0%{opacity:1}to{-webkit-transform:translate3d(-100%,0,0) skewX(-30deg);transform:translate3d(-100%,0,0) skewX(-30deg);opacity:0}}.animate__lightSpeedOutLeft{-webkit-animation-name:lightSpeedOutLeft;animation-name:lightSpeedOutLeft;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateIn{0%{-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownLeft{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInDownRight{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpLeft{0%{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes rotateInUpRight{0%{-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}.animate__rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{opacity:1}to{-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.animate__rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{opacity:1}to{-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.animate__rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{opacity:1}to{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.animate__rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft;-webkit-transform-origin:left bottom;transform-origin:left bottom}@-webkit-keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{opacity:1}to{-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.animate__rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight;-webkit-transform-origin:right bottom;transform-origin:right bottom}@-webkit-keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.animate__hinge{-webkit-animation-duration:2s;animation-duration:2s;-webkit-animation-duration:calc(var(--animate-duration)*2);animation-duration:calc(var(--animate-duration)*2);-webkit-animation-name:hinge;animation-name:hinge;-webkit-transform-origin:top left;transform-origin:top left}@-webkit-keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes jackInTheBox{0%{opacity:0;-webkit-transform:scale(.1) rotate(30deg);transform:scale(.1) rotate(30deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}50%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}70%{-webkit-transform:rotate(3deg);transform:rotate(3deg)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.animate__jackInTheBox{-webkit-animation-name:jackInTheBox;animation-name:jackInTheBox}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.animate__rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.animate__zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}.animate__zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0)}}.animate__zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft;-webkit-transform-origin:left center;transform-origin:left center}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0)}}.animate__zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight;-webkit-transform-origin:right center;transform-origin:right center}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.animate__zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.animate__slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.animate__slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.animate__slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.animate__slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.animate__slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/assets/css/dark.css b/assets/css/dark.css deleted file mode 100644 index 6b2f826..0000000 --- a/assets/css/dark.css +++ /dev/null @@ -1,275 +0,0 @@ -/* Version: 1.3 */ - -/* TABLE OF CONTENTS - 1. Template Dark -*/ - -/* 1. Template Dark */ - -input:focus, -textarea:focus, -button:focus { - color: #f0f0f0; -} - -input:focus::-webkit-input-placeholder, -textarea:focus::-webkit-input-placeholder { - color: #f0f0f0; -} - -input:focus:-moz-placeholder, -textarea:focus:-moz-placeholder { - color: #f0f0f0; -} - -input:focus::-moz-placeholder, -textarea:focus::-moz-placeholder { - color: #f0f0f0; -} - -input:focus:-ms-input-placeholder, -textarea:focus:-ms-input-placeholder { - color: #f0f0f0; -} - -body, -.container .line { - background: #26262d; -} - -table th, -table td { - border-color: #28282f; -} - -table, -table th, -table td { - background: none; -} - -table th, -table td { - border-width: 1px; -} - -body, -td, -blockquote, -.skills ul li .progress .percentage .percent, -.category { - color: #a2a2a6; -} - -input, -textarea, -button, -a, -.section .content .title .title_inner, -.resume-items .resume-item .name, -.service-items .service-item .name, -.section.works .filters label, -.single-post-text input[type="submit"], -.post-comments .post-comment .desc .name, -h1, -h2, -h3, -h4, -h5, -h6, -.mfp-close-btn-in .mfp-close, -.section.started .started-content .h-title, -.content-sidebar h2.widget-title, -.post-comments .post-comment .desc span.comment-reply a, -.post-comments .post-comment .desc span.comment-reply, -table th, -p strong, -footer .soc a .ion, -a.btn, -.btn, -.skills ul li .name, -.box-items .box-item .desc .name, -.popup-box .desc h4 { - color: #f0f0f0; -} - -.container, -.section:before, -.footer, -header, -.started-content .glitch-effect:before, -.started-content .glitch-effect:after, -.started-content .glitch-effect-white:before, -.started-content .glitch-effect-white:after, -header.fixed, -header.opened, -.footer.fixed, -.popup-box, -.preloader, -.skills.circles .progress:after, -footer, -header { - background: #31313a; -} - -.background-enabled .started-content .glitch-effect:before, -.background-enabled .started-content .glitch-effect:after { - background: transparent; -} - -.glitch-effect:before, -.glitch-effect:after, -.glitch-effect-white:before, -.glitch-effect-white:after { - background: transparent; -} - -.mfp-close-btn-in .mfp-close { - background: #31313a !important; - color: #fff !important; -} - -.section .content .title .title_inner, -.box-items .box-item .category, -.comment-info span.comment-reply, -.content-sidebar span.screen-reader-text span, -.content-sidebar h2.widget-title span, -.popup-box .category { - box-shadow: inset 0 -6px 0px #666666; - -moz-box-shadow: inset 0 -6px 0px #666666; - -webkit-box-shadow: inset 0 -6px 0px #666666; - -khtml-box-shadow: inset 0 -6px 0px #666666; -} - -.skills ul li .progress, -mark, -ins, -.skills.dotted ul li .progress .dg span, -.skills.dotted ul li .progress .da span, -.skills.circles .progress { - background: #666666; -} - -.content-sidebar { - background: #31313a; -} - -.content-sidebar .close, -.post-comments ul.children { - background: #3b3b42; -} - -.content-sidebar .close:before, -.content-sidebar .close:after, -.sidebar_btn span, -.sidebar_btn span:before, -.sidebar_btn span:after, -.header .head-top .menu-btn span, -.header .head-top .menu-btn:before, -.header .head-top .menu-btn:after, -header .head-top .menu-btn span, -header .head-top .menu-btn:before, -header .head-top .menu-btn:after { - background: #f0f0f0; -} - -.search-form input.search-submit { - filter: brightness(0) invert(1); -} - -.content-sidebar .widget ul li, -.content-sidebar .widget ul li:last-child, -.search-form input.search-field, -.content-sidebar h2.widget-title, -hr, -.post-comments .post-comment, -input, -textarea, -button { - border-color: #666666; -} - -.navigation.post-navigation .nav-links a:hover { - color: #dddddd; -} - -.sticky, -pre { - background-color: #3a3b44; -} - -header .head-top .top-menu-nav .sub-menu, -header .head-top .top-menu-nav .children { - background: #3e3f48; -} - -header .head-top .top-menu-nav .sub-menu:before, -header .head-top .top-menu-nav .children:before { - border-bottom-color: #3e3f48; -} - -header .head-top .top-menu-nav .sub-menu li .sub-menu:before, -header .head-top .top-menu-nav .children li .children:before { - border-right-color: #3e3f48; -} - -header .head-top .top-menu-nav .sub-menu li, -header .head-top .top-menu-nav .children li { - border-bottom-color: #666666; -} - -header .head-top .top-menu-nav .sub-menu li a, -header .head-top .top-menu-nav .children li a { - color: #a2a2a6; -} - -header .head-top .top-menu-nav .sub-menu li:hover a, -header .head-top .top-menu-nav .children li:hover a { - color: #f0f0f0; -} - -.post-comments ul.children ul.children { - background: none; -} - -@media (max-width: 840px) { - - header .head-top .top-menu-nav .sub-menu li .sub-menu, - header .head-top .top-menu-nav .children li .children { - background: #4a4b54; - } - - header .head-top .top-menu-nav .sub-menu li .sub-menu:before, - header .head-top .top-menu-nav .children li .children:before { - border-bottom-color: #4a4b54; - } -} - -.background-enabled header .head-top .top-menu-nav .sub-menu li a { - color: #a2a2a6; -} - -.background-enabled header .head-top .top-menu-nav .sub-menu li a:hover { - color: #a2a2a6; - text-decoration: underline; -} - -.started-content .glitch-effect:before, -.started-content .glitch-effect:after, -.started-content .glitch-effect-white:before, -.started-content .glitch-effect-white:after { - background: transparent; -} - -.background-enabled .footer.fixed .soc a .ion { - color: #dedede; -} - -header .logo a { - color: #f0f0f0; -} - -.mfp-image-holder .mfp-close, -.mfp-iframe-holder .mfp-close { - background: none !important; -} \ No newline at end of file diff --git a/assets/css/glitche-basic.css b/assets/css/glitche-basic.css deleted file mode 100644 index 89dc7ba..0000000 --- a/assets/css/glitche-basic.css +++ /dev/null @@ -1,815 +0,0 @@ -/* Version: 1.3 */ - -/* TABLE OF CONTENTS - 1. Basic - 2. Container - 3. Columns - 4. Typography - 5. Links - 6. Buttons - 7. Preloader - 8. Forms - 9. Lists - 10. Code - 11. Tables - 12. Alignment - 13. Text Formating - 14. Blockquote - 15. Cursor - 16. Animations -*/ - -/* 1. Basic */ -html { - margin-right: 0 !important; -} - -body { - margin: 0; - padding: 0; - border: none; - font-family: "Roboto Mono"; - font-size: 13px; - color: #363636; - background: #fff; - letter-spacing: 0; - font-weight: 400; - user-select: none; - cursor: none; - overflow: hidden; -} - -body header, -body footer, -body .section { - opacity: 0; - visibility: hidden; -} - -body.loaded header, -body.loaded footer, -body.loaded .section { - opacity: 1; - visibility: visible; -} - -body::-webkit-scrollbar { - width: 5px; -} - -body::-webkit-scrollbar-thumb { - background: #ecf1f4; -} - -body::-webkit-scrollbar-track { - background: #26272c; -} - -* { - box-sizing: border-box; - -webkit-box-sizing: border-box; -} - -.resume-items .resume-item p { - user-select: text; -} - -.clear { - clear: both; -} - -/* 2. Container */ -.container { - position: relative; - margin: 30px; - overflow: hidden; - background: #ffffff; -} - -@media (max-width: 840px) { - .container { - margin: 15px; - } -} - -.container .line { - content: ""; - position: fixed; - background: #f26b38; - z-index: 105; -} - -.container .line.top { - left: 0; - top: 0; - width: 100%; - height: 30px; -} - -@media (max-width: 840px) { - .container .line.top { - height: 15px; - } -} - -.container .line.bottom { - left: 0; - top: auto; - bottom: 0; - width: 100%; - height: 30px; -} - -@media (max-width: 840px) { - .container .line.bottom { - height: 15px; - } -} - -.container .line.left { - left: 0; - top: 0; - width: 30px; - height: 200%; -} - -@media (max-width: 840px) { - .container .line.left { - width: 15px; - } -} - -.container .line.right { - left: auto; - right: 0; - top: 0; - width: 30px; - height: 200%; -} - -@media (max-width: 840px) { - .container .line.right { - width: 15px; - } -} - -.wrapper { - overflow: hidden; - position: relative; - margin: 0 auto; - max-width: 1060px; -} - -/* 3. Columns */ -.cols { - position: relative; -} - -.cols .col.col-sm { - float: left; - width: 25%; -} - -@media (max-width: 840px) { - .cols .col.col-sm { - width: 100%; - } -} - -.cols .col.col-lg { - float: left; - width: 75%; -} - -@media (max-width: 840px) { - .cols .col.col-lg { - width: 100%; - } -} - -.cols .col.col-md { - float: left; - width: 50%; -} - -@media (max-width: 840px) { - .cols .col.col-md { - width: 100%; - } -} - -.cols:after { - content: ""; - display: block; - clear: both; -} - -/* 4. Typography */ -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: 500; - font-family: "Roboto Mono"; - margin: 0; - margin-bottom: 30px; - color: #141414; -} - -h1 { - font-size: 26px; -} - -h2 { - font-size: 23px; -} - -h3 { - font-size: 20px; -} - -h4 { - font-size: 18px; -} - -h5 { - font-size: 16px; -} - -h6 { - font-size: 14px; -} - -p { - font-size: 13px; - line-height: 23px; - padding: 0; - margin: 30px 0; -} - -strong { - font-weight: 500; -} - -/* 5. Links */ -a { - color: #363636; - text-decoration: none; - opacity: 1; - outline: none; - cursor: none; -} - -a:hover { - text-decoration: none; - color: #f26b38; -} - -/* 6. Buttons */ -a.btn, -.btn { - display: inline-block; - vertical-align: middle; - height: 42px; - line-height: 40px; - text-align: center; - color: #363636; - font-size: 13px; - background: none; - border: 1px solid #dddddd; - position: relative; - overflow: hidden; - padding: 0 30px; - cursor: pointer; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -a.btn.fill, -.btn.fill { - color: #ffffff; - background: #f26b38; - border: 1px solid #f26b38; -} - -a.btn:hover, -.btn:hover { - color: #ffffff; - background: #f26b38; - border: 1px solid #f26b38; -} - -/* 7. Preloader */ -.preloader { - width: 100%; - height: 100%; - position: fixed; - z-index: 1000; - top: 0; - left: 0; - text-align: center; -} - -.preloader .load { - color: #f26b38; - font-size: 12px; -} - -.preloader .typed-load, -.preloader .typed-cursor { - color: #f26b38; - font-size: 12px; -} - -/* 8. Forms */ -input, -textarea, -button { - cursor: none; - display: block; - background: none; - font-family: "Roboto Mono"; - font-size: 12px; - height: 60px; - width: 100%; - color: #141414; - margin-bottom: 30px; - padding: 0; - border: none; - border-bottom: 1px solid #dddddd; - -webkit-appearance: none; - resize: none; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; - border-radius: 0px; - -moz-border-radius: 0px; - -webkit-border-radius: 0px; - -khtml-border-radius: 0px; - outline: 0; -} - -input:focus, -textarea:focus, -button:focus { - color: #141414; - border-bottom: 1px solid #f26b38; -} - -textarea { - height: 120px; - padding: 0; - margin-top: 55px; -} - -button { - width: auto; - display: inline-block; - vertical-align: top; - text-align: left; - border-bottom: 1px solid #dddddd; - cursor: pointer; - color: #141414; -} - -button:hover { - border-bottom: 1px solid #f26b38; -} - -label, -legend { - display: block; - padding-bottom: 10px; - font-family: "Roboto Mono"; - font-size: 13px; -} - -fieldset { - border-width: 0; - padding: 0; -} - -input[type="checkbox"], -input[type="radio"] { - display: inline; -} - -::-webkit-input-placeholder { - color: #999999; -} - -:-moz-placeholder { - color: #999999; -} - -::-moz-placeholder { - color: #999999; -} - -:-ms-input-placeholder { - color: #999999; -} - -input:focus::-webkit-input-placeholder, -textarea:focus::-webkit-input-placeholder { - color: #141414; -} - -input:focus:-moz-placeholder, -textarea:focus:-moz-placeholder { - color: #141414; -} - -input:focus::-moz-placeholder, -textarea:focus::-moz-placeholder { - color: #141414; -} - -input:focus:-ms-input-placeholder, -textarea:focus:-ms-input-placeholder { - color: #141414; -} - -input.error, -textarea.error { - border-bottom: 1px solid red !important; -} - -label.error { - display: none !important; -} - -input.error::-moz-placeholder, -textarea.error::-moz-placeholder { - color: red; -} - -input.error:-moz-placeholder, -textarea.error:-moz-placeholder { - color: red; -} - -input.error:-ms-input-placeholder, -textarea.error:-ms-input-placeholder { - color: red; -} - -input.error::-webkit-input-placeholder, -textarea.error::-webkit-input-placeholder { - color: red; -} - -/* 9. Lists */ -ol, -ul { - list-style: none; - margin-top: 0px; - margin-bottom: 0px; - padding-left: 0px; -} - -ul ul, -ul ol, -ol ol, -ol ul { - margin-bottom: 0px; -} - -li { - margin-bottom: 0px; -} - -/* 10. Code */ -code { - background: #dddddd; - font-size: 16px; - font-family: "Roboto Mono"; - margin: 20px 0; - padding: 10px 20px; -} - -/* 11. Tables */ -table { - width: 100%; - margin: 30px 0; - padding: 0; - border-collapse: collapse; -} - -th { - font-weight: 500; - border: none; - border-bottom: 1px solid #dddddd; - color: #141414; - padding: 12px 15px; - text-align: left; -} - -td { - border: none; - border-bottom: 1px solid #dddddd; - padding: 12px 15px; - text-align: left; - color: #363636; -} - -/* 12. Alignment */ -.align-center { - text-align: center !important; -} - -.align-right { - text-align: right !important; -} - -.align-left { - text-align: left !important; -} - -.pull-right { - float: right !important; -} - -.pull-left { - float: left !important; -} - -.pull-none { - float: none !important; -} - -.full-width { - max-width: 100% !important; - width: 100% !important; -} - -.full-max-width { - max-width: 100% !important; - width: auto !important; -} - -.centrize { - display: table !important; - table-layout: fixed !important; - height: 100% !important; - position: relative !important; -} - -.vertical-center { - display: table-cell !important; - vertical-align: middle !important; -} - -/* 13. Text Formating */ -.text-uppercase { - text-transform: uppercase !important; -} - -.text-lowercase { - text-transform: lowercase !important; -} - -.text-capitalize { - text-transform: capitalize !important; -} - -.text-regular { - font-weight: 400 !important; -} - -.text-bold { - font-weight: 700 !important; -} - -.text-italic { - font-style: italic !important; -} - -/* 14. Blockquote */ -blockquote { - font-family: "Roboto Mono"; -} - -/* 15. Cursor */ -.cursor { - position: fixed; - width: 20px; - height: 20px; - border-radius: 50%; - pointer-events: none; - z-index: 999; - transition: transform 0.2s; - background-color: #f26b38; - mix-blend-mode: difference; - display: none; -} - -/* 16. Animations */ -/* Glitch Animations */ -@media (min-width: 580px) { - - .glitch-effect, - .glitch-effect-white { - position: relative; - } - - .glitch-effect:before, - .glitch-effect:after, - .glitch-effect-white:before, - .glitch-effect-white:after { - content: attr(data-text); - position: absolute; - top: 0; - left: 0; - width: 100%; - background: #ffffff; - clip: rect(0, 0, 0, 0); - } - - .glitch-effect-white:before, - .glitch-effect-white:after { - background: #f26b38; - } - - .glitch-effect:after, - .glitch-effect-white:after { - left: 2px; - text-shadow: -1px 0 #f26b38; - animation: glitch-1 2s infinite linear alternate-reverse; - } - - .glitch-effect:before, - .glitch-effect-white:before { - left: -2px; - text-shadow: 2px 0 #f26b38; - animation: glitch-2 2s infinite linear alternate-reverse; - } -} - -@keyframes glitch-1 { - 0% { - clip: rect(20px, 920px, 51px, 0); - } - - 5% { - clip: rect(83px, 920px, 102px, 0); - } - - 10% { - clip: rect(83px, 920px, 105px, 0); - } - - 15% { - clip: rect(95px, 920px, 11px, 0); - } - - 20% { - clip: rect(105px, 920px, 56px, 0); - } - - 25% { - clip: rect(40px, 920px, 19px, 0); - } - - 30% { - clip: rect(56px, 920px, 97px, 0); - } - - 35% { - clip: rect(9px, 920px, 17px, 0); - } - - 40% { - clip: rect(103px, 920px, 53px, 0); - } - - 45% { - clip: rect(92px, 920px, 6px, 0); - } - - 50% { - clip: rect(69px, 920px, 46px, 0); - } - - 55% { - clip: rect(8px, 920px, 87px, 0); - } - - 60% { - clip: rect(12px, 920px, 15px, 0); - } - - 70% { - clip: rect(28px, 920px, 106px, 0); - } - - 80% { - clip: rect(98px, 920px, 63px, 0); - } - - 85% { - clip: rect(11px, 920px, 44px, 0); - } - - 95% { - clip: rect(23px, 920px, 84px, 0); - } - - 100% { - clip: rect(66px, 920px, 91px, 0); - } -} - -@keyframes glitch-2 { - 0% { - clip: rect(86px, 920px, 25px, 0); - } - - 5% { - clip: rect(30px, 920px, 17px, 0); - } - - 10% { - clip: rect(54px, 920px, 43px, 0); - } - - 15% { - clip: rect(10px, 920px, 86px, 0); - } - - 25% { - clip: rect(62px, 920px, 1px, 0); - } - - 30% { - clip: rect(61px, 920px, 24px, 0); - } - - 35% { - clip: rect(38px, 920px, 46px, 0); - } - - 40% { - clip: rect(115px, 920px, 8px, 0); - } - - 45% { - clip: rect(87px, 920px, 44px, 0); - } - - 50% { - clip: rect(6px, 920px, 65px, 0); - } - - 55% { - clip: rect(83px, 920px, 99px, 0); - } - - 65% { - clip: rect(25px, 920px, 71px, 0); - } - - 70% { - clip: rect(37px, 920px, 55px, 0); - } - - 75% { - clip: rect(115px, 920px, 18px, 0); - } - - 80% { - clip: rect(68px, 920px, 46px, 0); - } - - 90% { - clip: rect(47px, 920px, 31px, 0); - } - - 95% { - clip: rect(47px, 920px, 84px, 0); - } - - 100% { - clip: rect(93px, 920px, 53px, 0); - } -} - -/* Mouse Button Animations */ -@keyframes mouse-anim { - 0% { - top: 0px; - } - - 50% { - top: 10px; - } - - 100% { - top: 0px; - } -} \ No newline at end of file diff --git a/assets/css/glitche-layout.css b/assets/css/glitche-layout.css deleted file mode 100644 index 60477e3..0000000 --- a/assets/css/glitche-layout.css +++ /dev/null @@ -1,2378 +0,0 @@ -/* Version: 1.3 */ - -/* TABLE OF CONTENTS - 1. Header - 2. Section - 3. Started - 4. About - 5. Resume - 6. Skills - 7. Service - 8. Portfolio - 9. Box Items - 10. Contacts - 11. Blog - 12. Footer - 13. Popups - 14. Layout Creative -*/ - -/* 1. Header */ -header { - position: fixed; - left: 0; - top: 30px; - width: 100%; - z-index: 100; - text-align: right; - background: #ffffff; - opacity: 1; - visibility: visible; - transition: all 0.6s ease 0s; - -moz-transition: all 0.6s ease 0s; - -webkit-transition: all 0.6s ease 0s; - -o-transition: all 0.6s ease 0s; -} - -header.active { - opacity: 1 !important; - visibility: visible !important; -} - -header.active .menu-btn:before { - opacity: 0; -} - -header.active .menu-btn:after { - bottom: 9px !important; - transform: rotate(-45deg); - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - -o-transform: rotate(-45deg); -} - -header.active .menu-btn span { - transform: rotate(45deg); - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -o-transform: rotate(45deg); -} - -header.active .head-top .top-menu { - position: fixed; - top: 100px; - left: 50%; - margin-left: -100px; - width: 200px; - height: auto; - text-align: center; - opacity: 1 !important; - visibility: visible !important; -} - -header.active .head-top .top-menu ul li { - display: block; - margin: 30px 0; -} - -@media (max-width: 840px) { - header { - top: 15px; - } -} - -header .head-top { - padding: 30px 65px 15px 65px; -} - -header .head-top .menu-btn { - position: relative; - margin: 0 auto; - width: 26px; - height: 20px; - display: none; -} - -header .head-top .menu-btn:before, -header .head-top .menu-btn:after { - content: ""; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 2px; - background: #141414; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -header .head-top .menu-btn:after { - top: auto; - bottom: 0; -} - -header .head-top .menu-btn span { - position: absolute; - top: 50%; - left: 0; - width: 100%; - height: 2px; - background: #141414; - margin-top: -1px; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -header .head-top .menu-btn:hover:before, -header .head-top .menu-btn:hover:after, -header .head-top .menu-btn:hover span { - background: #f26b38; -} - -@media (max-width: 840px) { - header .head-top .menu-btn { - display: block; - } -} - -@media (max-width: 840px) { - header .head-top .top-menu { - opacity: 0; - visibility: hidden; - height: 0px; - transition: opacity 0.3s ease 0.5s; - -moz-transition: opacity 0.3s ease 0.5s; - -webkit-transition: opacity 0.3s ease 0.5s; - -o-transition: opacity 0.3s ease 0.5s; - } -} - -header .head-top .top-menu ul li { - margin-left: 50px; - display: inline-block; - vertical-align: top; - transition: color 0.3s ease 0s; - -moz-transition: color 0.3s ease 0s; - -webkit-transition: color 0.3s ease 0s; - -o-transition: color 0.3s ease 0s; -} - -header .head-top .top-menu ul li a { - display: block; - margin-top: 12px; - cursor: none; -} - -header .head-top .top-menu ul li a.btn { - margin-top: 0; -} - -header .head-top .top-menu ul li.active a { - color: #f26b38; -} - -header .head-top .top-menu ul li.active .btn { - color: #ffffff; - background: #f26b38; - border: 1px solid #f26b38; -} - -/* 2. Section */ -.section { - position: relative; - padding: 0 80px 150px 80px; - z-index: 97; - opacity: 1; - visibility: visible; - transition: all 0.6s ease 0s; - -moz-transition: all 0.6s ease 0s; - -webkit-transition: all 0.6s ease 0s; - -o-transition: all 0.6s ease 0s; -} - -@media (max-width: 960px) { - .section { - padding: 0 40px 120px 40px; - } -} - -@media (max-width: 480px) { - .section { - padding: 0 20px 120px 20px; - } -} - -.section .content { - position: relative; -} - -.section .content .title { - position: relative; - margin-bottom: 40px; -} - -@media (max-width: 400px) { - .section .content .title { - text-align: center; - } -} - -.section .content .title .title_inner { - display: inline-block; - vertical-align: middle; - text-align: center; - position: relative; - line-height: 18px; - font-size: 13px; - color: #141414; - text-transform: uppercase; - letter-spacing: 0.04em; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; - box-shadow: inset 0 -6px 0px #ede574; - -moz-box-shadow: inset 0 -6px 0px #ede574; - -webkit-box-shadow: inset 0 -6px 0px #ede574; - -khtml-box-shadow: inset 0 -6px 0px #ede574; -} - -/* 3. Started */ -.section.started { - text-align: center; - padding: 0; - margin: 0; - position: relative; -} - -.section.started .started-content { - display: inline-block; - vertical-align: middle; - text-align: center; - position: relative; -} - -.section.started .started-content .h-title { - font-size: 68px; - font-family: "Roboto Mono"; - color: #141414; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.04em; - margin: 10px 0 5px 0; -} - -@media (max-width: 1060px) { - .section.started .started-content .h-title.blog_title { - font-size: 48px; - } -} - -@media (max-width: 840px) { - .section.started .started-content .h-title { - font-size: 52px; - padding: 0 20px; - } - - .section.started .started-content .h-title.blog_title { - font-size: 40px; - } -} - -@media (max-width: 580px) { - .section.started .started-content .h-title span { - display: block; - } -} - -@media (max-width: 480px) { - .section.started .started-content .h-title { - font-size: 42px; - } - - .section.started .started-content .h-title.blog_title { - font-size: 26px; - } -} - -.section.started .started-content .h-subtitle { - font-size: 13px; -} - -.section.started .started-content .typed-subtitle, -.section.started .started-content .typed-bread { - font-size: 13px; -} - -.section.started .mouse_btn { - font-size: 24px; - color: #f26b38; - text-align: center; - position: absolute; - width: 20px; - height: 40px; - left: 50%; - bottom: 80px; - margin-left: -10px; -} - -.section.started .mouse_btn .ion { - position: relative; - top: 0px; - animation: mouse-anim 1s ease-out 0s infinite; -} - -/* 4. About */ -@media (max-width: 400px) { - .section.about { - text-align: center; - } -} - -.section.about .image { - float: left; -} - -.section.about .image img { - width: 100px; - height: 100px; - border-radius: 100px; - -moz-border-radius: 100px; - -webkit-border-radius: 100px; - -khtml-border-radius: 100px; -} - -@media (max-width: 600px) { - .section.about .image img { - width: 80px; - height: 80px; - border-radius: 80px; - -moz-border-radius: 80px; - -webkit-border-radius: 80px; - -khtml-border-radius: 80px; - } -} - -@media (max-width: 400px) { - .section.about .image { - float: none; - text-align: center; - } - - .section.about .image img { - width: 100px; - height: 100px; - border-radius: 100px; - -moz-border-radius: 100px; - -webkit-border-radius: 100px; - -khtml-border-radius: 100px; - } -} - -.section.about .desc { - margin-left: 130px; -} - -@media (max-width: 600px) { - .section.about .desc { - margin-left: 100px; - } -} - -@media (max-width: 400px) { - .section.about .desc { - margin-left: 0; - } -} - -.info-list { - margin-bottom: 42px; -} - -.info-list ul li { - display: inline-block; - vertical-align: top; - width: 32%; - margin: 12px 0 0 0; -} - -@media (max-width: 840px) { - .info-list ul li { - width: 48%; - } -} - -@media (max-width: 580px) { - .info-list ul li { - width: 100%; - } -} - -.info-list ul li strong { - font-weight: 400; - color: #f26b38; -} - -/* 5. Resume */ -@media (max-width: 840px) { - .section.resume .cols .col.col-md:first-child { - margin-bottom: 120px; - } -} - -.resume-items .resume-item { - position: relative; - padding: 0 30px 60px 30px; -} - -@media (max-width: 840px) { - .resume-items .resume-item { - padding-right: 0px; - } -} - -.resume-items .resume-item:before { - content: ""; - position: absolute; - left: 0; - top: 0; - width: 1px; - height: 100%; - background: #f26b38; -} - -.resume-items .resume-item:first-child { - padding-top: 0; -} - -.resume-items .resume-item:last-child { - padding-bottom: 0; - margin-top: -1px; -} - -.resume-items .resume-item:last-child:before { - display: none; -} - -.resume-items .resume-item .date { - position: relative; - top: -10px; - margin: 0 0 5px 0; - display: inline-block; - padding: 0 5px; - height: 20px; - line-height: 18px; - font-weight: 500; - font-size: 11px; - color: #f26b38; - border: 1px solid #f26b38; -} - -.resume-items .resume-item .date:before { - content: ""; - width: 29px; - height: 1px; - position: absolute; - left: -30px; - top: 9px; - background: #f26b38; -} - -.resume-items .resume-item .name { - font-weight: 500; - color: #141414; - margin: 0 0 15px 0; -} - -.resume-items .resume-item p { - margin: 0; -} - -/* 6. Skills */ -.skills ul { - margin: 0; - padding: 0; - list-style: none; -} - -.skills ul li { - padding: 5px 0 30px 0; -} - -.skills ul li .name { - font-size: 13px; - color: #363636; - font-weight: 400; - position: relative; - margin: 0 0 9px 0; -} - -.skills ul li .progress { - display: block; - height: 3px; - position: relative; - width: 100%; - background: #dddddd; -} - -.skills ul li .progress .percentage { - left: 0; - top: 0; - position: absolute; - height: 3px; - width: 0%; - background: #f26b38; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -.skills ul li .progress .percentage .percent { - position: absolute; - top: -27px; - right: 0; - font-size: 13px; - color: #363636; - font-weight: 400; -} - -.skills ul li:last-child { - padding-bottom: 0; -} - -/* 7. Service */ -@media (max-width: 400px) { - .section.service { - text-align: center; - } -} - -.section.service .title, -.section.contacts .title { - margin-bottom: 0; -} - -.service-items .service-item { - display: inline-block; - vertical-align: top; - width: 28%; - margin: 50px 4% 0 0; - text-align: left; -} - -@media (max-width: 840px) { - .service-items .service-item { - width: 45%; - } -} - -@media (max-width: 580px) { - .service-items .service-item { - width: 100%; - margin-right: 0; - } -} - -@media (max-width: 400px) { - .service-items .service-item { - text-align: center; - } -} - -.service-items .service-item .icon { - float: left; - width: 36px; - text-align: center; - font-size: 30px; - color: #f26b38; -} - -@media (max-width: 400px) { - .service-items .service-item .icon { - float: none; - display: inline-block; - vertical-align: middle; - } -} - -.service-items .service-item .icon .ion { - display: block; -} - -.service-items .service-item .name { - font-weight: 500; - font-size: 13px; - color: #141414; - margin: 6px 0 0 46px; -} - -@media (max-width: 400px) { - .service-items .service-item .name { - margin: 0 0 0 2px; - display: inline-block; - vertical-align: middle; - } -} - -.service-items .service-item p { - margin-bottom: 0; -} - -/* 8. Portfolio */ -.section.works .filters { - margin-bottom: 30px; -} - -.section.works .filters input { - display: none; -} - -.section.works .filters label { - display: inline-block; - vertical-align: top; - margin-right: 25px; - font-size: 13px; - color: #363636; - cursor: none; - position: relative; - padding-bottom: 0; -} - -.section.works .filters label.glitch-effect { - color: #f26b38; -} - -@media (max-width: 580px) { - .section.works .filters label { - padding-bottom: 15px; - } -} - -@media (max-width: 580px) { - .section.works .filters { - margin-bottom: 10px; - } -} - -/* 9. Box Items */ -.box-items { - position: relative; - overflow: hidden; - margin-left: -3%; -} - -@media (max-width: 580px) { - .box-items { - margin-left: 0; - } -} - -.box-items .box-item { - width: 30.33333%; - margin: 0 0 3% 3%; - position: relative; - overflow: hidden; - text-align: center; -} - -@media (max-width: 840px) { - .box-items .box-item { - width: 47%; - } -} - -@media (max-width: 580px) { - .box-items .box-item { - width: 100%; - margin: 0 0 3% 0; - } -} - -.box-items .box-item:hover .image .info { - opacity: 0.94; - transform: scale(1, 1); - -webkit-transform: scale(1, 1); - -moz-transform: scale(1, 1); - -o-transform: scale(1, 1); -} - -.box-items .box-item:hover .desc .name { - color: #f26b38; -} - -.box-items .box-item .image { - position: relative; -} - -.box-items .box-item .image a { - display: block; - font-size: 0; -} - -.box-items .box-item .image a img { - width: 100%; - height: auto; - position: relative; - top: 0; -} - -.box-items .box-item .image .info { - text-align: center; - width: 100%; - height: 100%; - display: block; - position: absolute; - left: 0; - top: 0; - opacity: 0; - padding: 18px; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; - transform: scale(0.5, 0.5); - -webkit-transform: scale(0.5, 0.5); - -moz-transform: scale(0.5, 0.5); - -o-transform: scale(0.5, 0.5); -} - -.box-items .box-item .image .info .centrize { - background: #f26b38; -} - -.box-items .box-item .image .info .ion { - color: #ffffff; - font-size: 38px; - display: inline-block; - transition: all 0.1s ease-in 0.4s; - -moz-transition: all 0.1s ease-in 0.4s; - -webkit-transition: all 0.1s ease-in 0.4s; - -o-transition: all 0.1s ease-in 0.4s; - font-weight: normal; -} - -.box-items .box-item .desc { - position: relative; - padding: 15px 45px 5px 45px; -} - -@media (max-width: 1000px) { - .box-items .box-item .desc { - padding: 15px 15px 5px 15px; - } -} - -.box-items .box-item .desc .name { - height: auto; - display: block; - color: #363636; - font-size: 13px; - font-weight: 700; - text-transform: uppercase; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -.date { - margin: 0 0 10px 0; - display: inline-block; - padding: 0 5px; - height: 20px; - line-height: 18px; - font-weight: 500; - font-size: 11px; - color: #f26b38; - border: 1px solid #f26b38; -} - -.category { - margin: 0 0 10px 0; - display: inline-block; - font-size: 11px; - color: #363636; - text-transform: uppercase; - letter-spacing: 0.04em; - box-shadow: inset 0 -6px 0px #ede574; - -moz-box-shadow: inset 0 -6px 0px #ede574; - -webkit-box-shadow: inset 0 -6px 0px #ede574; - -khtml-box-shadow: inset 0 -6px 0px #ede574; -} - -/* 10. Contacts */ -@media (max-width: 400px) { - .section.contacts { - text-align: center; - } -} - -.section.contacts .service-items .service-item p { - margin-top: 20px; -} - -.section.contacts .contact_form { - margin-top: 30px; -} - -.section.contacts .alert-success { - display: none; -} - -.section.contacts .alert-success p { - margin: 60px 0 30px 0; - font-size: 15px; -} - -/* 11. Blog */ -.single-post-text img { - max-width: 100%; -} - -.post-comments { - margin-top: 60px; -} - -.post-comments .post-comment { - padding: 20px 0; - border-top: 1px solid #dddddd; -} - -.post-comments .post-comment:first-child { - padding-top: 0; - border-top: none; -} - -.post-comments .post-comment .image { - float: left; - width: 80px; - height: 80px; -} - -.post-comments .post-comment .image img { - width: 100%; - height: 100%; -} - -.post-comments .post-comment .desc { - margin-left: 100px; -} - -.post-comments .post-comment .desc .name { - font-size: 13px; - color: #141414; - text-transform: uppercase; - font-weight: 500; - padding: 5px 0 0 0; - margin: 0 0 10px 0; -} - -.post-comments .post-comment .desc p { - margin: 0; -} - -.post-comments .form-comment .title { - margin: 30px 0 15px 0; -} - -/* 12. Footer */ -footer { - position: fixed; - bottom: 25px; - left: 0; - padding: 15px 60px 30px 60px; - width: 100%; - background: #ffffff; - z-index: 100; - opacity: 1; - visibility: visible; - transition: all 0.6s ease 0s; - -moz-transition: all 0.6s ease 0s; - -webkit-transition: all 0.6s ease 0s; - -o-transition: all 0.6s ease 0s; -} - -@media (max-width: 840px) { - footer { - bottom: 15px; - } -} - -footer .soc { - float: right; -} - -footer .soc a { - display: inline-block; - vertical-align: middle; - margin-left: 12px; - cursor: none; -} - -footer .soc a .ion { - font-size: 17px; - color: #363636; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -footer .soc a:hover .ion { - color: #f26b38; -} - -@media (max-width: 840px) { - footer .soc { - float: none; - text-align: center; - } - - footer .soc a { - margin: 0 6px; - } -} - -footer .copy { - float: left; - padding-top: 2px; - font-size: 11px; - color: #999999; -} - -@media (max-width: 840px) { - footer .copy { - display: none; - } -} - -/* 13. Popups */ -.popup-box { - margin: 30px auto; - width: 520px; - background: #ffffff; - position: relative; - padding: 10px; -} - -@media (max-width: 580px) { - .popup-box { - width: 440px; - } -} - -@media (max-width: 480px) { - .popup-box { - width: 320px; - } -} - -.popup-box .image img { - width: 100%; - height: auto; -} - -.popup-box .desc { - padding: 30px 20px; -} - -.popup-box .desc h4 { - display: block; - color: #363636; - font-size: 17px; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.04em; - margin: 0 0 15px 0; - line-height: normal; -} - -.popup-box .desc p { - margin-top: 15px; -} - -.mfp-fade.mfp-bg { - opacity: 0; - transition: all 0.15s ease-out; - -moz-transition: all 0.15s ease-out; - -webkit-transition: all 0.15s ease-out; - -o-transition: all 0.15s ease-out; -} - -/* overlay animate in */ -.mfp-fade.mfp-bg.mfp-ready { - opacity: 0.8; -} - -/* overlay animate out */ -.mfp-fade.mfp-bg.mfp-removing { - opacity: 0; -} - -/* content at start */ -.mfp-fade.mfp-wrap .mfp-content { - opacity: 0; - transition: all 0.15s ease-out; - -moz-transition: all 0.15s ease-out; - -webkit-transition: all 0.15s ease-out; - -o-transition: all 0.15s ease-out; -} - -/* content animate it */ -.mfp-fade.mfp-wrap.mfp-ready .mfp-content { - opacity: 1; -} - -/* content animate out */ -.mfp-fade.mfp-wrap.mfp-removing .mfp-content { - opacity: 0; -} - -.mfp-close { - width: 54px !important; - height: 54px !important; - background: #ffffff !important; - line-height: 54px !important; - opacity: 1 !important; - font-weight: 300; - color: #ffffff; - font-size: 24px; - font-family: "Verdana" !important; -} - -/* 14. Layout Creative */ -.layout-creative { - height: auto; -} - -.section.started.layout-creative, -.section.started.layout-post-creative { - margin: 0 auto; - margin-bottom: 80px; - padding: 220px 0 80px; - width: 100%; - height: auto !important; -} -.section.started.layout-creative, -.section.started.layout-post-creative { - padding-top: 220px !important; -} -.section.started.layout-creative .centrize, -.section.started.layout-post-creative .centrize { - position: relative !important; - width: 926px !important; - margin-left: auto; - margin-right: auto; -} -.section.started.layout-creative .started-content, -.section.started.layout-post-creative .started-content { - padding-left: 0; - padding-right: 0; - display: block; - text-align: left; -} -.section.started.layout-post-creative .started-content { - text-align: center; -} -.section.started.layout-creative .started-content .h-title, -.section.started.layout-post-creative .started-content .h-title { - font-size: 34px; - line-height: 1.4; - font-family: "Roboto"; - font-weight: 500; - text-transform: none; - letter-spacing: 0em; - margin: 0 0 15px; -} -.section.started.layout-post-creative .started-content .h-title { - font-size: 64px; -} -.section.started .started-content .h-subtitles { - height: 24px; -} -.section.started.layout-creative .started-content .typed-subtitle, -.section.started.layout-creative .started-content .typed-bread, -.section.started.layout-creative .started-content .typed-cursor { - font-size: 18px; - opacity: 0.8; -} -.section.started.layout-creative .mouse_btn, -.section.started.layout-post-creative .mouse_btn { - display: none !important; -} -@media (max-width: 1060px) { - .section.started .started-content .h-title.blog_title { - font-size: 48px; - line-height: 68px; - } - .section.started.layout-creative, - .section.started.layout-post-creative { - width: 100%; - } - .section.started.layout-creative .centrize, - .section.started.layout-post-creative .centrize { - width: 680px !important; - } -} -@media (max-width: 840px) { - .section.started .started-content .h-title { - font-size: 52px; - } - .section.started .started-content .h-title.blog_title { - font-size: 40px; - } - .section.started.layout-creative, - .section.started.layout-post-creative { - width: 100%; - } - .section.started.layout-creative .centrize, - .section.started.layout-post-creative .centrize { - width: 540px !important; - } - .section.started.layout-creative .started-content .h-title, - .section.started.layout-post-creative .started-content .h-title { - font-size: 26px; - padding: 0; - } -} -@media (max-width: 580px) { - .section.started .started-content .h-title { - font-size: 42px; - line-height: 62px; - } - .section.started .started-content .h-title span { - display: block; - } - .section.started .started-content .h-title.blog_title { - font-size: 26px; - line-height: 46px; - } - .section.started.layout-creative, - .section.started.layout-post-creative { - padding-left: 20px; - padding-right: 20px; - padding-top: 120px; - padding-bottom: 60px; - width: 100%; - } - .section.started.layout-creative, - .section.started.layout-post-creative { - padding-top: 120px !important; - } - .section.started.layout-creative .centrize, - .section.started.layout-post-creative .centrize { - width: 100% !important; - } -} - -/* - New Styles -*/ - -.box-items .box-item .image .info .ion { - font-size: 28px; -} - -.skills.dotted ul li .progress .da span { - background: #f26b38 !important; -} - -.section.works .filters .btn-group { - display: inline-block; - vertical-align: top; -} - -.mfp-image-holder .mfp-close, -.mfp-iframe-holder .mfp-close { - background: none !important; - top: -10px; -} - -a.btn, -.btn { - cursor: none; - transition: background 0.3s ease 0s; - -moz-transition: background 0.3s ease 0s; - -webkit-transition: background 0.3s ease 0s; - -o-transition: background 0.3s ease 0s; -} - -/* 6. Skills */ -.skills ul { - margin: 0; - padding: 0; - list-style: none; - font-size: 0; -} - -.skills.circles ul { - margin: -30px 0 0 0; -} - -.skills.list ul { - margin: 0 -30px; -} - -.skills.dotted ul { - margin-left: -30px; - margin-right: -30px; -} - -.skills ul li { - position: relative; - padding: 0 0 30px 0; -} - -.skills.dotted ul li { - padding-left: 30px; - padding-right: 30px; - width: 50%; - display: inline-block; - vertical-align: top; -} - -.skills.circles ul li { - margin-top: 30px; - padding-bottom: 40px; - display: inline-block; - vertical-align: top; - width: 20%; -} - -.skills.list ul li { - padding-top: 0; - padding-bottom: 10px; - padding-left: 30px; - padding-right: 30px; - display: inline-block; - vertical-align: top; - width: 50%; -} - -.skills ul li:last-child { - padding-bottom: 0; -} - -.skills.circles ul li:last-child { - padding-bottom: 40px; -} - -.skills ul li:after { - display: none; -} - -.skills ul li .name { - font-size: 13px; - font-weight: 400; - position: relative; - margin: 0 0 9px 0; -} - -.skills.circles ul li .name { - position: absolute; - top: 115px; - left: 0; - width: 90px; - text-align: center; -} - -.skills.list ul li .name { - padding-left: 23px; - position: relative; -} - -.skills.list ul li .name:before { - content: "\f121"; - position: absolute; - left: 0; - top: 3px; - display: inline-block; - font-family: "Ionicons"; - color: #f26b38; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.skills ul li .progress { - display: block; - height: 3px; - position: relative; - width: 100%; - background: #dddddd; -} - -.skills.dotted ul li .progress { - height: 14px; - background: transparent !important; -} - -.skills.list ul li .progress { - display: none; -} - -.skills ul li .progress .percentage { - left: 0; - top: 0; - position: absolute; - height: 3px; - width: 0%; - background: #f26b38; - transition: all 0.3s ease 0s; - -moz-transition: all 0.3s ease 0s; - -webkit-transition: all 0.3s ease 0s; - -o-transition: all 0.3s ease 0s; -} - -.skills ul li .progress .percentage .percent { - position: absolute; - top: -27px; - right: 0; - font-size: 13px; - font-weight: 400; -} - -.skills.dotted ul li .progress .percentage { - position: relative; - overflow: hidden; - top: 0; - height: 14px; - background: transparent !important; - z-index: 2; -} - -.skills.dotted ul li .progress .dg, -.skills.dotted ul li .progress .da { - position: absolute; - left: 0; - top: 0; - width: 100%; - display: flex; - justify-content: space-between; - height: 14px; -} - -.skills.dotted ul li .progress .da { - top: 0; -} - -.skills.dotted ul li .progress .dg span, -.skills.dotted ul li .progress .da span { - display: block; - width: 14px; - height: 14px; - background: #dddddd; - -webkit-border-radius: 14px; - border-radius: 14px; -} - -.skills.dotted ul li .progress .da span { - background: #f26b38; -} - -.skills.circles .progress.p51 .slice, -.skills.circles .progress.p52 .slice, -.skills.circles .progress.p53 .slice, -.skills.circles .progress.p54 .slice, -.skills.circles .progress.p55 .slice, -.skills.circles .progress.p56 .slice, -.skills.circles .progress.p57 .slice, -.skills.circles .progress.p58 .slice, -.skills.circles .progress.p59 .slice, -.skills.circles .progress.p60 .slice, -.skills.circles .progress.p61 .slice, -.skills.circles .progress.p62 .slice, -.skills.circles .progress.p63 .slice, -.skills.circles .progress.p64 .slice, -.skills.circles .progress.p65 .slice, -.skills.circles .progress.p66 .slice, -.skills.circles .progress.p67 .slice, -.skills.circles .progress.p68 .slice, -.skills.circles .progress.p69 .slice, -.skills.circles .progress.p70 .slice, -.skills.circles .progress.p71 .slice, -.skills.circles .progress.p72 .slice, -.skills.circles .progress.p73 .slice, -.skills.circles .progress.p74 .slice, -.skills.circles .progress.p75 .slice, -.skills.circles .progress.p76 .slice, -.skills.circles .progress.p77 .slice, -.skills.circles .progress.p78 .slice, -.skills.circles .progress.p79 .slice, -.skills.circles .progress.p80 .slice, -.skills.circles .progress.p81 .slice, -.skills.circles .progress.p82 .slice, -.skills.circles .progress.p83 .slice, -.skills.circles .progress.p84 .slice, -.skills.circles .progress.p85 .slice, -.skills.circles .progress.p86 .slice, -.skills.circles .progress.p87 .slice, -.skills.circles .progress.p88 .slice, -.skills.circles .progress.p89 .slice, -.skills.circles .progress.p90 .slice, -.skills.circles .progress.p91 .slice, -.skills.circles .progress.p92 .slice, -.skills.circles .progress.p93 .slice, -.skills.circles .progress.p94 .slice, -.skills.circles .progress.p95 .slice, -.skills.circles .progress.p96 .slice, -.skills.circles .progress.p97 .slice, -.skills.circles .progress.p98 .slice, -.skills.circles .progress.p99 .slice, -.skills.circles .progress.p100 .slice { - clip: rect(auto, auto, auto, auto); -} - -.skills.circles .progress .bar, -.skills.circles .progress.p51 .fill, -.skills.circles .progress.p52 .fill, -.skills.circles .progress.p53 .fill, -.skills.circles .progress.p54 .fill, -.skills.circles .progress.p55 .fill, -.skills.circles .progress.p56 .fill, -.skills.circles .progress.p57 .fill, -.skills.circles .progress.p58 .fill, -.skills.circles .progress.p59 .fill, -.skills.circles .progress.p60 .fill, -.skills.circles .progress.p61 .fill, -.skills.circles .progress.p62 .fill, -.skills.circles .progress.p63 .fill, -.skills.circles .progress.p64 .fill, -.skills.circles .progress.p65 .fill, -.skills.circles .progress.p66 .fill, -.skills.circles .progress.p67 .fill, -.skills.circles .progress.p68 .fill, -.skills.circles .progress.p69 .fill, -.skills.circles .progress.p70 .fill, -.skills.circles .progress.p71 .fill, -.skills.circles .progress.p72 .fill, -.skills.circles .progress.p73 .fill, -.skills.circles .progress.p74 .fill, -.skills.circles .progress.p75 .fill, -.skills.circles .progress.p76 .fill, -.skills.circles .progress.p77 .fill, -.skills.circles .progress.p78 .fill, -.skills.circles .progress.p79 .fill, -.skills.circles .progress.p80 .fill, -.skills.circles .progress.p81 .fill, -.skills.circles .progress.p82 .fill, -.skills.circles .progress.p83 .fill, -.skills.circles .progress.p84 .fill, -.skills.circles .progress.p85 .fill, -.skills.circles .progress.p86 .fill, -.skills.circles .progress.p87 .fill, -.skills.circles .progress.p88 .fill, -.skills.circles .progress.p89 .fill, -.skills.circles .progress.p90 .fill, -.skills.circles .progress.p91 .fill, -.skills.circles .progress.p92 .fill, -.skills.circles .progress.p93 .fill, -.skills.circles .progress.p94 .fill, -.skills.circles .progress.p95 .fill, -.skills.circles .progress.p96 .fill, -.skills.circles .progress.p97 .fill, -.skills.circles .progress.p98 .fill, -.skills.circles .progress.p99 .fill, -.skills.circles .progress.p100 .fill { - position: absolute; - width: 0.82em; - height: 0.82em; - clip: rect(0em, 0.5em, 1em, 0em); - border: 0.09em solid #f26b38; - -webkit-border-radius: 50%; - border-radius: 50%; - -webkit-transform: rotate(0deg); - transform: rotate(0deg); -} - -.skills.circles .progress.p51 .bar:after, -.skills.circles .progress.p51 .fill, -.skills.circles .progress.p52 .bar:after, -.skills.circles .progress.p52 .fill, -.skills.circles .progress.p53 .bar:after, -.skills.circles .progress.p53 .fill, -.skills.circles .progress.p54 .bar:after, -.skills.circles .progress.p54 .fill, -.skills.circles .progress.p55 .bar:after, -.skills.circles .progress.p55 .fill, -.skills.circles .progress.p56 .bar:after, -.skills.circles .progress.p56 .fill, -.skills.circles .progress.p57 .bar:after, -.skills.circles .progress.p57 .fill, -.skills.circles .progress.p58 .bar:after, -.skills.circles .progress.p58 .fill, -.skills.circles .progress.p59 .bar:after, -.skills.circles .progress.p59 .fill, -.skills.circles .progress.p60 .bar:after, -.skills.circles .progress.p60 .fill, -.skills.circles .progress.p61 .bar:after, -.skills.circles .progress.p61 .fill, -.skills.circles .progress.p62 .bar:after, -.skills.circles .progress.p62 .fill, -.skills.circles .progress.p63 .bar:after, -.skills.circles .progress.p63 .fill, -.skills.circles .progress.p64 .bar:after, -.skills.circles .progress.p64 .fill, -.skills.circles .progress.p65 .bar:after, -.skills.circles .progress.p65 .fill, -.skills.circles .progress.p66 .bar:after, -.skills.circles .progress.p66 .fill, -.skills.circles .progress.p67 .bar:after, -.skills.circles .progress.p67 .fill, -.skills.circles .progress.p68 .bar:after, -.skills.circles .progress.p68 .fill, -.skills.circles .progress.p69 .bar:after, -.skills.circles .progress.p69 .fill, -.skills.circles .progress.p70 .bar:after, -.skills.circles .progress.p70 .fill, -.skills.circles .progress.p71 .bar:after, -.skills.circles .progress.p71 .fill, -.skills.circles .progress.p72 .bar:after, -.skills.circles .progress.p72 .fill, -.skills.circles .progress.p73 .bar:after, -.skills.circles .progress.p73 .fill, -.skills.circles .progress.p74 .bar:after, -.skills.circles .progress.p74 .fill, -.skills.circles .progress.p75 .bar:after, -.skills.circles .progress.p75 .fill, -.skills.circles .progress.p76 .bar:after, -.skills.circles .progress.p76 .fill, -.skills.circles .progress.p77 .bar:after, -.skills.circles .progress.p77 .fill, -.skills.circles .progress.p78 .bar:after, -.skills.circles .progress.p78 .fill, -.skills.circles .progress.p79 .bar:after, -.skills.circles .progress.p79 .fill, -.skills.circles .progress.p80 .bar:after, -.skills.circles .progress.p80 .fill, -.skills.circles .progress.p81 .bar:after, -.skills.circles .progress.p81 .fill, -.skills.circles .progress.p82 .bar:after, -.skills.circles .progress.p82 .fill, -.skills.circles .progress.p83 .bar:after, -.skills.circles .progress.p83 .fill, -.skills.circles .progress.p84 .bar:after, -.skills.circles .progress.p84 .fill, -.skills.circles .progress.p85 .bar:after, -.skills.circles .progress.p85 .fill, -.skills.circles .progress.p86 .bar:after, -.skills.circles .progress.p86 .fill, -.skills.circles .progress.p87 .bar:after, -.skills.circles .progress.p87 .fill, -.skills.circles .progress.p88 .bar:after, -.skills.circles .progress.p88 .fill, -.skills.circles .progress.p89 .bar:after, -.skills.circles .progress.p89 .fill, -.skills.circles .progress.p90 .bar:after, -.skills.circles .progress.p90 .fill, -.skills.circles .progress.p91 .bar:after, -.skills.circles .progress.p91 .fill, -.skills.circles .progress.p92 .bar:after, -.skills.circles .progress.p92 .fill, -.skills.circles .progress.p93 .bar:after, -.skills.circles .progress.p93 .fill, -.skills.circles .progress.p94 .bar:after, -.skills.circles .progress.p94 .fill, -.skills.circles .progress.p95 .bar:after, -.skills.circles .progress.p95 .fill, -.skills.circles .progress.p96 .bar:after, -.skills.circles .progress.p96 .fill, -.skills.circles .progress.p97 .bar:after, -.skills.circles .progress.p97 .fill, -.skills.circles .progress.p98 .bar:after, -.skills.circles .progress.p98 .fill, -.skills.circles .progress.p99 .bar:after, -.skills.circles .progress.p99 .fill, -.skills.circles .progress.p100 .bar:after, -.skills.circles .progress.p100 .fill { - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.skills.circles .progress { - margin: 0; - position: relative; - font-size: 90px; - width: 90px; - height: 90px; - border-radius: 90px; - background: #dddddd; -} - -.skills.circles .progress *, -.skills.circles .progress *:before, -.skills.circles .progress *:after { - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box; -} - -.skills.circles .progress span { - position: absolute; - width: 100%; - left: 0; - top: 0; - width: 100%; - height: 100%; - line-height: 90px; - font-size: 17px; - text-align: center; - white-space: nowrap; - z-index: 2; -} - -.skills.circles .progress:after { - position: absolute; - top: 0.09em; - left: 0.09em; - display: block; - content: " "; - border-radius: 50%; - background-color: #ffffff; - width: 0.82em; - height: 0.82em; -} - -.skills.circles ul li .progress .percentage { - display: none; -} - -.skills.circles .progress .slice { - position: absolute; - width: 1em; - height: 1em; - clip: rect(0em, 1em, 1em, 0.5em); -} - -.skills.circles .progress.p1 .bar { - -moz-transform: rotate(3.6deg); - -ms-transform: rotate(3.6deg); - -webkit-transform: rotate(3.6deg); - transform: rotate(3.6deg); -} - -.skills.circles .progress.p2 .bar { - -moz-transform: rotate(7.2deg); - -ms-transform: rotate(7.2deg); - -webkit-transform: rotate(7.2deg); - transform: rotate(7.2deg); -} - -.skills.circles .progress.p3 .bar { - -moz-transform: rotate(10.8deg); - -ms-transform: rotate(10.8deg); - -webkit-transform: rotate(10.8deg); - transform: rotate(10.8deg); -} - -.skills.circles .progress.p4 .bar { - -moz-transform: rotate(14.4deg); - -ms-transform: rotate(14.4deg); - -webkit-transform: rotate(14.4deg); - transform: rotate(14.4deg); -} - -.skills.circles .progress.p5 .bar { - -moz-transform: rotate(18deg); - -ms-transform: rotate(18deg); - -webkit-transform: rotate(18deg); - transform: rotate(18deg); -} - -.skills.circles .progress.p6 .bar { - -moz-transform: rotate(21.6deg); - -ms-transform: rotate(21.6deg); - -webkit-transform: rotate(21.6deg); - transform: rotate(21.6deg); -} - -.skills.circles .progress.p7 .bar { - -moz-transform: rotate(25.2deg); - -ms-transform: rotate(25.2deg); - -webkit-transform: rotate(25.2deg); - transform: rotate(25.2deg); -} - -.skills.circles .progress.p8 .bar { - -moz-transform: rotate(28.8deg); - -ms-transform: rotate(28.8deg); - -webkit-transform: rotate(28.8deg); - transform: rotate(28.8deg); -} - -.skills.circles .progress.p9 .bar { - -moz-transform: rotate(32.4deg); - -ms-transform: rotate(32.4deg); - -webkit-transform: rotate(32.4deg); - transform: rotate(32.4deg); -} - -.skills.circles .progress.p10 .bar { - -moz-transform: rotate(36deg); - -ms-transform: rotate(36deg); - -webkit-transform: rotate(36deg); - transform: rotate(36deg); -} - -.skills.circles .progress.p11 .bar { - -moz-transform: rotate(39.6deg); - -ms-transform: rotate(39.6deg); - -webkit-transform: rotate(39.6deg); - transform: rotate(39.6deg); -} - -.skills.circles .progress.p12 .bar { - -moz-transform: rotate(43.2deg); - -ms-transform: rotate(43.2deg); - -webkit-transform: rotate(43.2deg); - transform: rotate(43.2deg); -} - -.skills.circles .progress.p13 .bar { - -moz-transform: rotate(46.8deg); - -ms-transform: rotate(46.8deg); - -webkit-transform: rotate(46.8deg); - transform: rotate(46.8deg); -} - -.skills.circles .progress.p14 .bar { - -moz-transform: rotate(50.4deg); - -ms-transform: rotate(50.4deg); - -webkit-transform: rotate(50.4deg); - transform: rotate(50.4deg); -} - -.skills.circles .progress.p15 .bar { - -moz-transform: rotate(54deg); - -ms-transform: rotate(54deg); - -webkit-transform: rotate(54deg); - transform: rotate(54deg); -} - -.skills.circles .progress.p16 .bar { - -moz-transform: rotate(57.6deg); - -ms-transform: rotate(57.6deg); - -webkit-transform: rotate(57.6deg); - transform: rotate(57.6deg); -} - -.skills.circles .progress.p17 .bar { - -moz-transform: rotate(61.2deg); - -ms-transform: rotate(61.2deg); - -webkit-transform: rotate(61.2deg); - transform: rotate(61.2deg); -} - -.skills.circles .progress.p18 .bar { - -moz-transform: rotate(64.8deg); - -ms-transform: rotate(64.8deg); - -webkit-transform: rotate(64.8deg); - transform: rotate(64.8deg); -} - -.skills.circles .progress.p19 .bar { - -moz-transform: rotate(68.4deg); - -ms-transform: rotate(68.4deg); - -webkit-transform: rotate(68.4deg); - transform: rotate(68.4deg); -} - -.skills.circles .progress.p20 .bar { - -moz-transform: rotate(72deg); - -ms-transform: rotate(72deg); - -webkit-transform: rotate(72deg); - transform: rotate(72deg); -} - -.skills.circles .progress.p21 .bar { - -moz-transform: rotate(75.6deg); - -ms-transform: rotate(75.6deg); - -webkit-transform: rotate(75.6deg); - transform: rotate(75.6deg); -} - -.skills.circles .progress.p22 .bar { - -moz-transform: rotate(79.2deg); - -ms-transform: rotate(79.2deg); - -webkit-transform: rotate(79.2deg); - transform: rotate(79.2deg); -} - -.skills.circles .progress.p23 .bar { - -moz-transform: rotate(82.8deg); - -ms-transform: rotate(82.8deg); - -webkit-transform: rotate(82.8deg); - transform: rotate(82.8deg); -} - -.skills.circles .progress.p24 .bar { - -moz-transform: rotate(86.4deg); - -ms-transform: rotate(86.4deg); - -webkit-transform: rotate(86.4deg); - transform: rotate(86.4deg); -} - -.skills.circles .progress.p25 .bar { - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.skills.circles .progress.p26 .bar { - -moz-transform: rotate(93.6deg); - -ms-transform: rotate(93.6deg); - -webkit-transform: rotate(93.6deg); - transform: rotate(93.6deg); -} - -.skills.circles .progress.p27 .bar { - -moz-transform: rotate(97.2deg); - -ms-transform: rotate(97.2deg); - -webkit-transform: rotate(97.2deg); - transform: rotate(97.2deg); -} - -.skills.circles .progress.p28 .bar { - -moz-transform: rotate(100.8deg); - -ms-transform: rotate(100.8deg); - -webkit-transform: rotate(100.8deg); - transform: rotate(100.8deg); -} - -.skills.circles .progress.p29 .bar { - -moz-transform: rotate(104.4deg); - -ms-transform: rotate(104.4deg); - -webkit-transform: rotate(104.4deg); - transform: rotate(104.4deg); -} - -.skills.circles .progress.p30 .bar { - -moz-transform: rotate(108deg); - -ms-transform: rotate(108deg); - -webkit-transform: rotate(108deg); - transform: rotate(108deg); -} - -.skills.circles .progress.p31 .bar { - -moz-transform: rotate(111.6deg); - -ms-transform: rotate(111.6deg); - -webkit-transform: rotate(111.6deg); - transform: rotate(111.6deg); -} - -.skills.circles .progress.p32 .bar { - -moz-transform: rotate(115.2deg); - -ms-transform: rotate(115.2deg); - -webkit-transform: rotate(115.2deg); - transform: rotate(115.2deg); -} - -.skills.circles .progress.p33 .bar { - -moz-transform: rotate(118.8deg); - -ms-transform: rotate(118.8deg); - -webkit-transform: rotate(118.8deg); - transform: rotate(118.8deg); -} - -.skills.circles .progress.p34 .bar { - -moz-transform: rotate(122.4deg); - -ms-transform: rotate(122.4deg); - -webkit-transform: rotate(122.4deg); - transform: rotate(122.4deg); -} - -.skills.circles .progress.p35 .bar { - -moz-transform: rotate(126deg); - -ms-transform: rotate(126deg); - -webkit-transform: rotate(126deg); - transform: rotate(126deg); -} - -.skills.circles .progress.p36 .bar { - -moz-transform: rotate(129.6deg); - -ms-transform: rotate(129.6deg); - -webkit-transform: rotate(129.6deg); - transform: rotate(129.6deg); -} - -.skills.circles .progress.p37 .bar { - -moz-transform: rotate(133.2deg); - -ms-transform: rotate(133.2deg); - -webkit-transform: rotate(133.2deg); - transform: rotate(133.2deg); -} - -.skills.circles .progress.p38 .bar { - -moz-transform: rotate(136.8deg); - -ms-transform: rotate(136.8deg); - -webkit-transform: rotate(136.8deg); - transform: rotate(136.8deg); -} - -.skills.circles .progress.p39 .bar { - -moz-transform: rotate(140.4deg); - -ms-transform: rotate(140.4deg); - -webkit-transform: rotate(140.4deg); - transform: rotate(140.4deg); -} - -.skills.circles .progress.p40 .bar { - -moz-transform: rotate(144deg); - -ms-transform: rotate(144deg); - -webkit-transform: rotate(144deg); - transform: rotate(144deg); -} - -.skills.circles .progress.p41 .bar { - -moz-transform: rotate(147.6deg); - -ms-transform: rotate(147.6deg); - -webkit-transform: rotate(147.6deg); - transform: rotate(147.6deg); -} - -.skills.circles .progress.p42 .bar { - -moz-transform: rotate(151.2deg); - -ms-transform: rotate(151.2deg); - -webkit-transform: rotate(151.2deg); - transform: rotate(151.2deg); -} - -.skills.circles .progress.p43 .bar { - -moz-transform: rotate(154.8deg); - -ms-transform: rotate(154.8deg); - -webkit-transform: rotate(154.8deg); - transform: rotate(154.8deg); -} - -.skills.circles .progress.p44 .bar { - -moz-transform: rotate(158.4deg); - -ms-transform: rotate(158.4deg); - -webkit-transform: rotate(158.4deg); - transform: rotate(158.4deg); -} - -.skills.circles .progress.p45 .bar { - -moz-transform: rotate(162deg); - -ms-transform: rotate(162deg); - -webkit-transform: rotate(162deg); - transform: rotate(162deg); -} - -.skills.circles .progress.p46 .bar { - -moz-transform: rotate(165.6deg); - -ms-transform: rotate(165.6deg); - -webkit-transform: rotate(165.6deg); - transform: rotate(165.6deg); -} - -.skills.circles .progress.p47 .bar { - -moz-transform: rotate(169.2deg); - -ms-transform: rotate(169.2deg); - -webkit-transform: rotate(169.2deg); - transform: rotate(169.2deg); -} - -.skills.circles .progress.p48 .bar { - -moz-transform: rotate(172.8deg); - -ms-transform: rotate(172.8deg); - -webkit-transform: rotate(172.8deg); - transform: rotate(172.8deg); -} - -.skills.circles .progress.p49 .bar { - -moz-transform: rotate(176.4deg); - -ms-transform: rotate(176.4deg); - -webkit-transform: rotate(176.4deg); - transform: rotate(176.4deg); -} - -.skills.circles .progress.p50 .bar { - -moz-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.skills.circles .progress.p51 .bar { - -moz-transform: rotate(183.6deg); - -ms-transform: rotate(183.6deg); - -webkit-transform: rotate(183.6deg); - transform: rotate(183.6deg); -} - -.skills.circles .progress.p52 .bar { - -moz-transform: rotate(187.2deg); - -ms-transform: rotate(187.2deg); - -webkit-transform: rotate(187.2deg); - transform: rotate(187.2deg); -} - -.skills.circles .progress.p53 .bar { - -moz-transform: rotate(190.8deg); - -ms-transform: rotate(190.8deg); - -webkit-transform: rotate(190.8deg); - transform: rotate(190.8deg); -} - -.skills.circles .progress.p54 .bar { - -moz-transform: rotate(194.4deg); - -ms-transform: rotate(194.4deg); - -webkit-transform: rotate(194.4deg); - transform: rotate(194.4deg); -} - -.skills.circles .progress.p55 .bar { - -moz-transform: rotate(198deg); - -ms-transform: rotate(198deg); - -webkit-transform: rotate(198deg); - transform: rotate(198deg); -} - -.skills.circles .progress.p56 .bar { - -moz-transform: rotate(201.6deg); - -ms-transform: rotate(201.6deg); - -webkit-transform: rotate(201.6deg); - transform: rotate(201.6deg); -} - -.skills.circles .progress.p57 .bar { - -moz-transform: rotate(205.2deg); - -ms-transform: rotate(205.2deg); - -webkit-transform: rotate(205.2deg); - transform: rotate(205.2deg); -} - -.skills.circles .progress.p58 .bar { - -moz-transform: rotate(208.8deg); - -ms-transform: rotate(208.8deg); - -webkit-transform: rotate(208.8deg); - transform: rotate(208.8deg); -} - -.skills.circles .progress.p59 .bar { - -moz-transform: rotate(212.4deg); - -ms-transform: rotate(212.4deg); - -webkit-transform: rotate(212.4deg); - transform: rotate(212.4deg); -} - -.skills.circles .progress.p60 .bar { - -moz-transform: rotate(216deg); - -ms-transform: rotate(216deg); - -webkit-transform: rotate(216deg); - transform: rotate(216deg); -} - -.skills.circles .progress.p61 .bar { - -moz-transform: rotate(219.6deg); - -ms-transform: rotate(219.6deg); - -webkit-transform: rotate(219.6deg); - transform: rotate(219.6deg); -} - -.skills.circles .progress.p62 .bar { - -moz-transform: rotate(223.2deg); - -ms-transform: rotate(223.2deg); - -webkit-transform: rotate(223.2deg); - transform: rotate(223.2deg); -} - -.skills.circles .progress.p63 .bar { - -moz-transform: rotate(226.8deg); - -ms-transform: rotate(226.8deg); - -webkit-transform: rotate(226.8deg); - transform: rotate(226.8deg); -} - -.skills.circles .progress.p64 .bar { - -moz-transform: rotate(230.4deg); - -ms-transform: rotate(230.4deg); - -webkit-transform: rotate(230.4deg); - transform: rotate(230.4deg); -} - -.skills.circles .progress.p65 .bar { - -moz-transform: rotate(234deg); - -ms-transform: rotate(234deg); - -webkit-transform: rotate(234deg); - transform: rotate(234deg); -} - -.skills.circles .progress.p66 .bar { - -moz-transform: rotate(237.6deg); - -ms-transform: rotate(237.6deg); - -webkit-transform: rotate(237.6deg); - transform: rotate(237.6deg); -} - -.skills.circles .progress.p67 .bar { - -moz-transform: rotate(241.2deg); - -ms-transform: rotate(241.2deg); - -webkit-transform: rotate(241.2deg); - transform: rotate(241.2deg); -} - -.skills.circles .progress.p68 .bar { - -moz-transform: rotate(244.8deg); - -ms-transform: rotate(244.8deg); - -webkit-transform: rotate(244.8deg); - transform: rotate(244.8deg); -} - -.skills.circles .progress.p69 .bar { - -moz-transform: rotate(248.4deg); - -ms-transform: rotate(248.4deg); - -webkit-transform: rotate(248.4deg); - transform: rotate(248.4deg); -} - -.skills.circles .progress.p70 .bar { - -moz-transform: rotate(252deg); - -ms-transform: rotate(252deg); - -webkit-transform: rotate(252deg); - transform: rotate(252deg); -} - -.skills.circles .progress.p71 .bar { - -moz-transform: rotate(255.6deg); - -ms-transform: rotate(255.6deg); - -webkit-transform: rotate(255.6deg); - transform: rotate(255.6deg); -} - -.skills.circles .progress.p72 .bar { - -moz-transform: rotate(259.2deg); - -ms-transform: rotate(259.2deg); - -webkit-transform: rotate(259.2deg); - transform: rotate(259.2deg); -} - -.skills.circles .progress.p73 .bar { - -moz-transform: rotate(262.8deg); - -ms-transform: rotate(262.8deg); - -webkit-transform: rotate(262.8deg); - transform: rotate(262.8deg); -} - -.skills.circles .progress.p74 .bar { - -moz-transform: rotate(266.4deg); - -ms-transform: rotate(266.4deg); - -webkit-transform: rotate(266.4deg); - transform: rotate(266.4deg); -} - -.skills.circles .progress.p75 .bar { - -moz-transform: rotate(270deg); - -ms-transform: rotate(270deg); - -webkit-transform: rotate(270deg); - transform: rotate(270deg); -} - -.skills.circles .progress.p76 .bar { - -moz-transform: rotate(273.6deg); - -ms-transform: rotate(273.6deg); - -webkit-transform: rotate(273.6deg); - transform: rotate(273.6deg); -} - -.skills.circles .progress.p77 .bar { - -moz-transform: rotate(277.2deg); - -ms-transform: rotate(277.2deg); - -webkit-transform: rotate(277.2deg); - transform: rotate(277.2deg); -} - -.skills.circles .progress.p78 .bar { - -moz-transform: rotate(280.8deg); - -ms-transform: rotate(280.8deg); - -webkit-transform: rotate(280.8deg); - transform: rotate(280.8deg); -} - -.skills.circles .progress.p79 .bar { - -moz-transform: rotate(284.4deg); - -ms-transform: rotate(284.4deg); - -webkit-transform: rotate(284.4deg); - transform: rotate(284.4deg); -} - -.skills.circles .progress.p80 .bar { - -moz-transform: rotate(288deg); - -ms-transform: rotate(288deg); - -webkit-transform: rotate(288deg); - transform: rotate(288deg); -} - -.skills.circles .progress.p81 .bar { - -moz-transform: rotate(291.6deg); - -ms-transform: rotate(291.6deg); - -webkit-transform: rotate(291.6deg); - transform: rotate(291.6deg); -} - -.skills.circles .progress.p82 .bar { - -moz-transform: rotate(295.2deg); - -ms-transform: rotate(295.2deg); - -webkit-transform: rotate(295.2deg); - transform: rotate(295.2deg); -} - -.skills.circles .progress.p83 .bar { - -moz-transform: rotate(298.8deg); - -ms-transform: rotate(298.8deg); - -webkit-transform: rotate(298.8deg); - transform: rotate(298.8deg); -} - -.skills.circles .progress.p84 .bar { - -moz-transform: rotate(302.4deg); - -ms-transform: rotate(302.4deg); - -webkit-transform: rotate(302.4deg); - transform: rotate(302.4deg); -} - -.skills.circles .progress.p85 .bar { - -moz-transform: rotate(306deg); - -ms-transform: rotate(306deg); - -webkit-transform: rotate(306deg); - transform: rotate(306deg); -} - -.skills.circles .progress.p86 .bar { - -moz-transform: rotate(309.6deg); - -ms-transform: rotate(309.6deg); - -webkit-transform: rotate(309.6deg); - transform: rotate(309.6deg); -} - -.skills.circles .progress.p87 .bar { - -moz-transform: rotate(313.2deg); - -ms-transform: rotate(313.2deg); - -webkit-transform: rotate(313.2deg); - transform: rotate(313.2deg); -} - -.skills.circles .progress.p88 .bar { - -moz-transform: rotate(316.8deg); - -ms-transform: rotate(316.8deg); - -webkit-transform: rotate(316.8deg); - transform: rotate(316.8deg); -} - -.skills.circles .progress.p89 .bar { - -moz-transform: rotate(320.4deg); - -ms-transform: rotate(320.4deg); - -webkit-transform: rotate(320.4deg); - transform: rotate(320.4deg); -} - -.skills.circles .progress.p90 .bar { - -moz-transform: rotate(324deg); - -ms-transform: rotate(324deg); - -webkit-transform: rotate(324deg); - transform: rotate(324deg); -} - -.skills.circles .progress.p91 .bar { - -moz-transform: rotate(327.6deg); - -ms-transform: rotate(327.6deg); - -webkit-transform: rotate(327.6deg); - transform: rotate(327.6deg); -} - -.skills.circles .progress.p92 .bar { - -moz-transform: rotate(331.2deg); - -ms-transform: rotate(331.2deg); - -webkit-transform: rotate(331.2deg); - transform: rotate(331.2deg); -} - -.skills.circles .progress.p93 .bar { - -moz-transform: rotate(334.8deg); - -ms-transform: rotate(334.8deg); - -webkit-transform: rotate(334.8deg); - transform: rotate(334.8deg); -} - -.skills.circles .progress.p94 .bar { - -moz-transform: rotate(338.4deg); - -ms-transform: rotate(338.4deg); - -webkit-transform: rotate(338.4deg); - transform: rotate(338.4deg); -} - -.skills.circles .progress.p95 .bar { - -moz-transform: rotate(342deg); - -ms-transform: rotate(342deg); - -webkit-transform: rotate(342deg); - transform: rotate(342deg); -} - -.skills.circles .progress.p96 .bar { - -moz-transform: rotate(345.6deg); - -ms-transform: rotate(345.6deg); - -webkit-transform: rotate(345.6deg); - transform: rotate(345.6deg); -} - -.skills.circles .progress.p97 .bar { - -moz-transform: rotate(349.2deg); - -ms-transform: rotate(349.2deg); - -webkit-transform: rotate(349.2deg); - transform: rotate(349.2deg); -} - -.skills.circles .progress.p98 .bar { - -moz-transform: rotate(352.8deg); - -ms-transform: rotate(352.8deg); - -webkit-transform: rotate(352.8deg); - transform: rotate(352.8deg); -} - -.skills.circles .progress.p99 .bar { - -moz-transform: rotate(356.4deg); - -ms-transform: rotate(356.4deg); - -webkit-transform: rotate(356.4deg); - transform: rotate(356.4deg); -} - -.skills.circles .progress.p100 .bar { - -moz-transform: rotate(360deg); - -ms-transform: rotate(360deg); - -webkit-transform: rotate(360deg); - transform: rotate(360deg); -} - -@media (max-width: 840px) { - .skills.circles ul li { - width: 25%; - } -} - -@media (max-width: 580px) { - .skills.dotted ul li { - width: 100%; - display: block; - } - - .skills.circles ul li { - width: 33.333%; - } - - .skills.list ul li { - display: block; - width: 100%; - } -} diff --git a/assets/css/ionicons.css b/assets/css/ionicons.css deleted file mode 100644 index 1845b0c..0000000 --- a/assets/css/ionicons.css +++ /dev/null @@ -1,3703 +0,0 @@ -/* - Ionicons, v2.0.1 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons - - Android-style icons originally built by Google’s - Material Design Icons: https://github.com/google/material-design-icons - used under CC BY http://creativecommons.org/licenses/by/4.0/ - Modified icons to fit ionicon’s grid from original. -*/ - -@font-face { - font-family: "Ionicons"; - src: - url("../fonts/ionicons790f.eot?v=2.0.1"); - src: - url("../fonts/ionicons790f.eot?v=2.0.1#iefix") format("embedded-opentype"), - url("../fonts/ionicons790f.ttf?v=2.0.1") format("truetype"), - url("../fonts/ionicons790f.woff?v=2.0.1") format("woff"), - url("../fonts/ionicons790f.svg?v=2.0.1#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; -} - -.ion, -.ionicons, -.ion-alert:before, -.ion-alert-circled:before, -.ion-android-add:before, -.ion-android-add-circle:before, -.ion-android-alarm-clock:before, -.ion-android-alert:before, -.ion-android-apps:before, -.ion-android-archive:before, -.ion-android-arrow-back:before, -.ion-android-arrow-down:before, -.ion-android-arrow-dropdown:before, -.ion-android-arrow-dropdown-circle:before, -.ion-android-arrow-dropleft:before, -.ion-android-arrow-dropleft-circle:before, -.ion-android-arrow-dropright:before, -.ion-android-arrow-dropright-circle:before, -.ion-android-arrow-dropup:before, -.ion-android-arrow-dropup-circle:before, -.ion-android-arrow-forward:before, -.ion-android-arrow-up:before, -.ion-android-attach:before, -.ion-android-bar:before, -.ion-android-bicycle:before, -.ion-android-boat:before, -.ion-android-bookmark:before, -.ion-android-bulb:before, -.ion-android-bus:before, -.ion-android-calendar:before, -.ion-android-call:before, -.ion-android-camera:before, -.ion-android-cancel:before, -.ion-android-car:before, -.ion-android-cart:before, -.ion-android-chat:before, -.ion-android-checkbox:before, -.ion-android-checkbox-blank:before, -.ion-android-checkbox-outline:before, -.ion-android-checkbox-outline-blank:before, -.ion-android-checkmark-circle:before, -.ion-android-clipboard:before, -.ion-android-close:before, -.ion-android-cloud:before, -.ion-android-cloud-circle:before, -.ion-android-cloud-done:before, -.ion-android-cloud-outline:before, -.ion-android-color-palette:before, -.ion-android-compass:before, -.ion-android-contact:before, -.ion-android-contacts:before, -.ion-android-contract:before, -.ion-android-create:before, -.ion-android-delete:before, -.ion-android-desktop:before, -.ion-android-document:before, -.ion-android-done:before, -.ion-android-done-all:before, -.ion-android-download:before, -.ion-android-drafts:before, -.ion-android-exit:before, -.ion-android-expand:before, -.ion-android-favorite:before, -.ion-android-favorite-outline:before, -.ion-android-film:before, -.ion-android-folder:before, -.ion-android-folder-open:before, -.ion-android-funnel:before, -.ion-android-globe:before, -.ion-android-hand:before, -.ion-android-hangout:before, -.ion-android-happy:before, -.ion-android-home:before, -.ion-android-image:before, -.ion-android-laptop:before, -.ion-android-list:before, -.ion-android-locate:before, -.ion-android-lock:before, -.ion-android-mail:before, -.ion-android-map:before, -.ion-android-menu:before, -.ion-android-microphone:before, -.ion-android-microphone-off:before, -.ion-android-more-horizontal:before, -.ion-android-more-vertical:before, -.ion-android-navigate:before, -.ion-android-notifications:before, -.ion-android-notifications-none:before, -.ion-android-notifications-off:before, -.ion-android-open:before, -.ion-android-options:before, -.ion-android-people:before, -.ion-android-person:before, -.ion-android-person-add:before, -.ion-android-phone-landscape:before, -.ion-android-phone-portrait:before, -.ion-android-pin:before, -.ion-android-plane:before, -.ion-android-playstore:before, -.ion-android-print:before, -.ion-android-radio-button-off:before, -.ion-android-radio-button-on:before, -.ion-android-refresh:before, -.ion-android-remove:before, -.ion-android-remove-circle:before, -.ion-android-restaurant:before, -.ion-android-sad:before, -.ion-android-search:before, -.ion-android-send:before, -.ion-android-settings:before, -.ion-android-share:before, -.ion-android-share-alt:before, -.ion-android-star:before, -.ion-android-star-half:before, -.ion-android-star-outline:before, -.ion-android-stopwatch:before, -.ion-android-subway:before, -.ion-android-sunny:before, -.ion-android-sync:before, -.ion-android-textsms:before, -.ion-android-time:before, -.ion-android-train:before, -.ion-android-unlock:before, -.ion-android-upload:before, -.ion-android-volume-down:before, -.ion-android-volume-mute:before, -.ion-android-volume-off:before, -.ion-android-volume-up:before, -.ion-android-walk:before, -.ion-android-warning:before, -.ion-android-watch:before, -.ion-android-wifi:before, -.ion-aperture:before, -.ion-archive:before, -.ion-arrow-down-a:before, -.ion-arrow-down-b:before, -.ion-arrow-down-c:before, -.ion-arrow-expand:before, -.ion-arrow-graph-down-left:before, -.ion-arrow-graph-down-right:before, -.ion-arrow-graph-up-left:before, -.ion-arrow-graph-up-right:before, -.ion-arrow-left-a:before, -.ion-arrow-left-b:before, -.ion-arrow-left-c:before, -.ion-arrow-move:before, -.ion-arrow-resize:before, -.ion-arrow-return-left:before, -.ion-arrow-return-right:before, -.ion-arrow-right-a:before, -.ion-arrow-right-b:before, -.ion-arrow-right-c:before, -.ion-arrow-shrink:before, -.ion-arrow-swap:before, -.ion-arrow-up-a:before, -.ion-arrow-up-b:before, -.ion-arrow-up-c:before, -.ion-asterisk:before, -.ion-at:before, -.ion-backspace:before, -.ion-backspace-outline:before, -.ion-bag:before, -.ion-battery-charging:before, -.ion-battery-empty:before, -.ion-battery-full:before, -.ion-battery-half:before, -.ion-battery-low:before, -.ion-beaker:before, -.ion-beer:before, -.ion-bluetooth:before, -.ion-bonfire:before, -.ion-bookmark:before, -.ion-bowtie:before, -.ion-briefcase:before, -.ion-bug:before, -.ion-calculator:before, -.ion-calendar:before, -.ion-camera:before, -.ion-card:before, -.ion-cash:before, -.ion-chatbox:before, -.ion-chatbox-working:before, -.ion-chatboxes:before, -.ion-chatbubble:before, -.ion-chatbubble-working:before, -.ion-chatbubbles:before, -.ion-checkmark:before, -.ion-checkmark-circled:before, -.ion-checkmark-round:before, -.ion-chevron-down:before, -.ion-chevron-left:before, -.ion-chevron-right:before, -.ion-chevron-up:before, -.ion-clipboard:before, -.ion-clock:before, -.ion-close:before, -.ion-close-circled:before, -.ion-close-round:before, -.ion-closed-captioning:before, -.ion-cloud:before, -.ion-code:before, -.ion-code-download:before, -.ion-code-working:before, -.ion-coffee:before, -.ion-compass:before, -.ion-compose:before, -.ion-connection-bars:before, -.ion-contrast:before, -.ion-crop:before, -.ion-cube:before, -.ion-disc:before, -.ion-document:before, -.ion-document-text:before, -.ion-drag:before, -.ion-earth:before, -.ion-easel:before, -.ion-edit:before, -.ion-egg:before, -.ion-eject:before, -.ion-email:before, -.ion-email-unread:before, -.ion-erlenmeyer-flask:before, -.ion-erlenmeyer-flask-bubbles:before, -.ion-eye:before, -.ion-eye-disabled:before, -.ion-female:before, -.ion-filing:before, -.ion-film-marker:before, -.ion-fireball:before, -.ion-flag:before, -.ion-flame:before, -.ion-flash:before, -.ion-flash-off:before, -.ion-folder:before, -.ion-fork:before, -.ion-fork-repo:before, -.ion-forward:before, -.ion-funnel:before, -.ion-gear-a:before, -.ion-gear-b:before, -.ion-grid:before, -.ion-hammer:before, -.ion-happy:before, -.ion-happy-outline:before, -.ion-headphone:before, -.ion-heart:before, -.ion-heart-broken:before, -.ion-help:before, -.ion-help-buoy:before, -.ion-help-circled:before, -.ion-home:before, -.ion-icecream:before, -.ion-image:before, -.ion-images:before, -.ion-information:before, -.ion-information-circled:before, -.ion-ionic:before, -.ion-ios-alarm:before, -.ion-ios-alarm-outline:before, -.ion-ios-albums:before, -.ion-ios-albums-outline:before, -.ion-ios-americanfootball:before, -.ion-ios-americanfootball-outline:before, -.ion-ios-analytics:before, -.ion-ios-analytics-outline:before, -.ion-ios-arrow-back:before, -.ion-ios-arrow-down:before, -.ion-ios-arrow-forward:before, -.ion-ios-arrow-left:before, -.ion-ios-arrow-right:before, -.ion-ios-arrow-thin-down:before, -.ion-ios-arrow-thin-left:before, -.ion-ios-arrow-thin-right:before, -.ion-ios-arrow-thin-up:before, -.ion-ios-arrow-up:before, -.ion-ios-at:before, -.ion-ios-at-outline:before, -.ion-ios-barcode:before, -.ion-ios-barcode-outline:before, -.ion-ios-baseball:before, -.ion-ios-baseball-outline:before, -.ion-ios-basketball:before, -.ion-ios-basketball-outline:before, -.ion-ios-bell:before, -.ion-ios-bell-outline:before, -.ion-ios-body:before, -.ion-ios-body-outline:before, -.ion-ios-bolt:before, -.ion-ios-bolt-outline:before, -.ion-ios-book:before, -.ion-ios-book-outline:before, -.ion-ios-bookmarks:before, -.ion-ios-bookmarks-outline:before, -.ion-ios-box:before, -.ion-ios-box-outline:before, -.ion-ios-briefcase:before, -.ion-ios-briefcase-outline:before, -.ion-ios-browsers:before, -.ion-ios-browsers-outline:before, -.ion-ios-calculator:before, -.ion-ios-calculator-outline:before, -.ion-ios-calendar:before, -.ion-ios-calendar-outline:before, -.ion-ios-camera:before, -.ion-ios-camera-outline:before, -.ion-ios-cart:before, -.ion-ios-cart-outline:before, -.ion-ios-chatboxes:before, -.ion-ios-chatboxes-outline:before, -.ion-ios-chatbubble:before, -.ion-ios-chatbubble-outline:before, -.ion-ios-checkmark:before, -.ion-ios-checkmark-empty:before, -.ion-ios-checkmark-outline:before, -.ion-ios-circle-filled:before, -.ion-ios-circle-outline:before, -.ion-ios-clock:before, -.ion-ios-clock-outline:before, -.ion-ios-close:before, -.ion-ios-close-empty:before, -.ion-ios-close-outline:before, -.ion-ios-cloud:before, -.ion-ios-cloud-download:before, -.ion-ios-cloud-download-outline:before, -.ion-ios-cloud-outline:before, -.ion-ios-cloud-upload:before, -.ion-ios-cloud-upload-outline:before, -.ion-ios-cloudy:before, -.ion-ios-cloudy-night:before, -.ion-ios-cloudy-night-outline:before, -.ion-ios-cloudy-outline:before, -.ion-ios-cog:before, -.ion-ios-cog-outline:before, -.ion-ios-color-filter:before, -.ion-ios-color-filter-outline:before, -.ion-ios-color-wand:before, -.ion-ios-color-wand-outline:before, -.ion-ios-compose:before, -.ion-ios-compose-outline:before, -.ion-ios-contact:before, -.ion-ios-contact-outline:before, -.ion-ios-copy:before, -.ion-ios-copy-outline:before, -.ion-ios-crop:before, -.ion-ios-crop-strong:before, -.ion-ios-download:before, -.ion-ios-download-outline:before, -.ion-ios-drag:before, -.ion-ios-email:before, -.ion-ios-email-outline:before, -.ion-ios-eye:before, -.ion-ios-eye-outline:before, -.ion-ios-fastforward:before, -.ion-ios-fastforward-outline:before, -.ion-ios-filing:before, -.ion-ios-filing-outline:before, -.ion-ios-film:before, -.ion-ios-film-outline:before, -.ion-ios-flag:before, -.ion-ios-flag-outline:before, -.ion-ios-flame:before, -.ion-ios-flame-outline:before, -.ion-ios-flask:before, -.ion-ios-flask-outline:before, -.ion-ios-flower:before, -.ion-ios-flower-outline:before, -.ion-ios-folder:before, -.ion-ios-folder-outline:before, -.ion-ios-football:before, -.ion-ios-football-outline:before, -.ion-ios-game-controller-a:before, -.ion-ios-game-controller-a-outline:before, -.ion-ios-game-controller-b:before, -.ion-ios-game-controller-b-outline:before, -.ion-ios-gear:before, -.ion-ios-gear-outline:before, -.ion-ios-glasses:before, -.ion-ios-glasses-outline:before, -.ion-ios-grid-view:before, -.ion-ios-grid-view-outline:before, -.ion-ios-heart:before, -.ion-ios-heart-outline:before, -.ion-ios-help:before, -.ion-ios-help-empty:before, -.ion-ios-help-outline:before, -.ion-ios-home:before, -.ion-ios-home-outline:before, -.ion-ios-infinite:before, -.ion-ios-infinite-outline:before, -.ion-ios-information:before, -.ion-ios-information-empty:before, -.ion-ios-information-outline:before, -.ion-ios-ionic-outline:before, -.ion-ios-keypad:before, -.ion-ios-keypad-outline:before, -.ion-ios-lightbulb:before, -.ion-ios-lightbulb-outline:before, -.ion-ios-list:before, -.ion-ios-list-outline:before, -.ion-ios-location:before, -.ion-ios-location-outline:before, -.ion-ios-locked:before, -.ion-ios-locked-outline:before, -.ion-ios-loop:before, -.ion-ios-loop-strong:before, -.ion-ios-medical:before, -.ion-ios-medical-outline:before, -.ion-ios-medkit:before, -.ion-ios-medkit-outline:before, -.ion-ios-mic:before, -.ion-ios-mic-off:before, -.ion-ios-mic-outline:before, -.ion-ios-minus:before, -.ion-ios-minus-empty:before, -.ion-ios-minus-outline:before, -.ion-ios-monitor:before, -.ion-ios-monitor-outline:before, -.ion-ios-moon:before, -.ion-ios-moon-outline:before, -.ion-ios-more:before, -.ion-ios-more-outline:before, -.ion-ios-musical-note:before, -.ion-ios-musical-notes:before, -.ion-ios-navigate:before, -.ion-ios-navigate-outline:before, -.ion-ios-nutrition:before, -.ion-ios-nutrition-outline:before, -.ion-ios-paper:before, -.ion-ios-paper-outline:before, -.ion-ios-paperplane:before, -.ion-ios-paperplane-outline:before, -.ion-ios-partlysunny:before, -.ion-ios-partlysunny-outline:before, -.ion-ios-pause:before, -.ion-ios-pause-outline:before, -.ion-ios-paw:before, -.ion-ios-paw-outline:before, -.ion-ios-people:before, -.ion-ios-people-outline:before, -.ion-ios-person:before, -.ion-ios-person-outline:before, -.ion-ios-personadd:before, -.ion-ios-personadd-outline:before, -.ion-ios-photos:before, -.ion-ios-photos-outline:before, -.ion-ios-pie:before, -.ion-ios-pie-outline:before, -.ion-ios-pint:before, -.ion-ios-pint-outline:before, -.ion-ios-play:before, -.ion-ios-play-outline:before, -.ion-ios-plus:before, -.ion-ios-plus-empty:before, -.ion-ios-plus-outline:before, -.ion-ios-pricetag:before, -.ion-ios-pricetag-outline:before, -.ion-ios-pricetags:before, -.ion-ios-pricetags-outline:before, -.ion-ios-printer:before, -.ion-ios-printer-outline:before, -.ion-ios-pulse:before, -.ion-ios-pulse-strong:before, -.ion-ios-rainy:before, -.ion-ios-rainy-outline:before, -.ion-ios-recording:before, -.ion-ios-recording-outline:before, -.ion-ios-redo:before, -.ion-ios-redo-outline:before, -.ion-ios-refresh:before, -.ion-ios-refresh-empty:before, -.ion-ios-refresh-outline:before, -.ion-ios-reload:before, -.ion-ios-reverse-camera:before, -.ion-ios-reverse-camera-outline:before, -.ion-ios-rewind:before, -.ion-ios-rewind-outline:before, -.ion-ios-rose:before, -.ion-ios-rose-outline:before, -.ion-ios-search:before, -.ion-ios-search-strong:before, -.ion-ios-settings:before, -.ion-ios-settings-strong:before, -.ion-ios-shuffle:before, -.ion-ios-shuffle-strong:before, -.ion-ios-skipbackward:before, -.ion-ios-skipbackward-outline:before, -.ion-ios-skipforward:before, -.ion-ios-skipforward-outline:before, -.ion-ios-snowy:before, -.ion-ios-speedometer:before, -.ion-ios-speedometer-outline:before, -.ion-ios-star:before, -.ion-ios-star-half:before, -.ion-ios-star-outline:before, -.ion-ios-stopwatch:before, -.ion-ios-stopwatch-outline:before, -.ion-ios-sunny:before, -.ion-ios-sunny-outline:before, -.ion-ios-telephone:before, -.ion-ios-telephone-outline:before, -.ion-ios-tennisball:before, -.ion-ios-tennisball-outline:before, -.ion-ios-thunderstorm:before, -.ion-ios-thunderstorm-outline:before, -.ion-ios-time:before, -.ion-ios-time-outline:before, -.ion-ios-timer:before, -.ion-ios-timer-outline:before, -.ion-ios-toggle:before, -.ion-ios-toggle-outline:before, -.ion-ios-trash:before, -.ion-ios-trash-outline:before, -.ion-ios-undo:before, -.ion-ios-undo-outline:before, -.ion-ios-unlocked:before, -.ion-ios-unlocked-outline:before, -.ion-ios-upload:before, -.ion-ios-upload-outline:before, -.ion-ios-videocam:before, -.ion-ios-videocam-outline:before, -.ion-ios-volume-high:before, -.ion-ios-volume-low:before, -.ion-ios-wineglass:before, -.ion-ios-wineglass-outline:before, -.ion-ios-world:before, -.ion-ios-world-outline:before, -.ion-ipad:before, -.ion-iphone:before, -.ion-ipod:before, -.ion-jet:before, -.ion-key:before, -.ion-knife:before, -.ion-laptop:before, -.ion-leaf:before, -.ion-levels:before, -.ion-lightbulb:before, -.ion-link:before, -.ion-load-a:before, -.ion-load-b:before, -.ion-load-c:before, -.ion-load-d:before, -.ion-location:before, -.ion-lock-combination:before, -.ion-locked:before, -.ion-log-in:before, -.ion-log-out:before, -.ion-loop:before, -.ion-magnet:before, -.ion-male:before, -.ion-man:before, -.ion-map:before, -.ion-medkit:before, -.ion-merge:before, -.ion-mic-a:before, -.ion-mic-b:before, -.ion-mic-c:before, -.ion-minus:before, -.ion-minus-circled:before, -.ion-minus-round:before, -.ion-model-s:before, -.ion-monitor:before, -.ion-more:before, -.ion-mouse:before, -.ion-music-note:before, -.ion-navicon:before, -.ion-navicon-round:before, -.ion-navigate:before, -.ion-network:before, -.ion-no-smoking:before, -.ion-nuclear:before, -.ion-outlet:before, -.ion-paintbrush:before, -.ion-paintbucket:before, -.ion-paper-airplane:before, -.ion-paperclip:before, -.ion-pause:before, -.ion-person:before, -.ion-person-add:before, -.ion-person-stalker:before, -.ion-pie-graph:before, -.ion-pin:before, -.ion-pinpoint:before, -.ion-pizza:before, -.ion-plane:before, -.ion-planet:before, -.ion-play:before, -.ion-playstation:before, -.ion-plus:before, -.ion-plus-circled:before, -.ion-plus-round:before, -.ion-podium:before, -.ion-pound:before, -.ion-power:before, -.ion-pricetag:before, -.ion-pricetags:before, -.ion-printer:before, -.ion-pull-request:before, -.ion-qr-scanner:before, -.ion-quote:before, -.ion-radio-waves:before, -.ion-record:before, -.ion-refresh:before, -.ion-reply:before, -.ion-reply-all:before, -.ion-ribbon-a:before, -.ion-ribbon-b:before, -.ion-sad:before, -.ion-sad-outline:before, -.ion-scissors:before, -.ion-search:before, -.ion-settings:before, -.ion-share:before, -.ion-shuffle:before, -.ion-skip-backward:before, -.ion-skip-forward:before, -.ion-social-android:before, -.ion-social-android-outline:before, -.ion-social-angular:before, -.ion-social-angular-outline:before, -.ion-social-apple:before, -.ion-social-apple-outline:before, -.ion-social-bitcoin:before, -.ion-social-bitcoin-outline:before, -.ion-social-buffer:before, -.ion-social-buffer-outline:before, -.ion-social-chrome:before, -.ion-social-chrome-outline:before, -.ion-social-codepen:before, -.ion-social-codepen-outline:before, -.ion-social-css3:before, -.ion-social-css3-outline:before, -.ion-social-designernews:before, -.ion-social-designernews-outline:before, -.ion-social-dribbble:before, -.ion-social-dribbble-outline:before, -.ion-social-dropbox:before, -.ion-social-dropbox-outline:before, -.ion-social-euro:before, -.ion-social-euro-outline:before, -.ion-social-facebook:before, -.ion-social-facebook-outline:before, -.ion-social-foursquare:before, -.ion-social-foursquare-outline:before, -.ion-social-freebsd-devil:before, -.ion-social-github:before, -.ion-social-github-outline:before, -.ion-social-google:before, -.ion-social-google-outline:before, -.ion-social-googleplus:before, -.ion-social-googleplus-outline:before, -.ion-social-hackernews:before, -.ion-social-hackernews-outline:before, -.ion-social-html5:before, -.ion-social-html5-outline:before, -.ion-social-instagram:before, -.ion-social-instagram-outline:before, -.ion-social-javascript:before, -.ion-social-javascript-outline:before, -.ion-social-linkedin:before, -.ion-social-linkedin-outline:before, -.ion-social-markdown:before, -.ion-social-nodejs:before, -.ion-social-octocat:before, -.ion-social-pinterest:before, -.ion-social-pinterest-outline:before, -.ion-social-python:before, -.ion-social-reddit:before, -.ion-social-reddit-outline:before, -.ion-social-rss:before, -.ion-social-rss-outline:before, -.ion-social-sass:before, -.ion-social-skype:before, -.ion-social-skype-outline:before, -.ion-social-snapchat:before, -.ion-social-snapchat-outline:before, -.ion-social-tumblr:before, -.ion-social-tumblr-outline:before, -.ion-social-tux:before, -.ion-social-twitch:before, -.ion-social-twitch-outline:before, -.ion-social-twitter:before, -.ion-social-twitter-outline:before, -.ion-social-usd:before, -.ion-social-usd-outline:before, -.ion-social-vimeo:before, -.ion-social-vimeo-outline:before, -.ion-social-whatsapp:before, -.ion-social-whatsapp-outline:before, -.ion-social-windows:before, -.ion-social-windows-outline:before, -.ion-social-wordpress:before, -.ion-social-wordpress-outline:before, -.ion-social-yahoo:before, -.ion-social-yahoo-outline:before, -.ion-social-yen:before, -.ion-social-yen-outline:before, -.ion-social-youtube:before, -.ion-social-youtube-outline:before, -.ion-soup-can:before, -.ion-soup-can-outline:before, -.ion-speakerphone:before, -.ion-speedometer:before, -.ion-spoon:before, -.ion-star:before, -.ion-stats-bars:before, -.ion-steam:before, -.ion-stop:before, -.ion-thermometer:before, -.ion-thumbsdown:before, -.ion-thumbsup:before, -.ion-toggle:before, -.ion-toggle-filled:before, -.ion-transgender:before, -.ion-trash-a:before, -.ion-trash-b:before, -.ion-trophy:before, -.ion-tshirt:before, -.ion-tshirt-outline:before, -.ion-umbrella:before, -.ion-university:before, -.ion-unlocked:before, -.ion-upload:before, -.ion-usb:before, -.ion-videocamera:before, -.ion-volume-high:before, -.ion-volume-low:before, -.ion-volume-medium:before, -.ion-volume-mute:before, -.ion-wand:before, -.ion-waterdrop:before, -.ion-wifi:before, -.ion-wineglass:before, -.ion-woman:before, -.ion-wrench:before, -.ion-xbox:before { - display: inline-block; - font-family: "Ionicons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -.ion-alert:before { - content: "\f101"; -} - -.ion-alert-circled:before { - content: "\f100"; -} - -.ion-android-add:before { - content: "\f2c7"; -} - -.ion-android-add-circle:before { - content: "\f359"; -} - -.ion-android-alarm-clock:before { - content: "\f35a"; -} - -.ion-android-alert:before { - content: "\f35b"; -} - -.ion-android-apps:before { - content: "\f35c"; -} - -.ion-android-archive:before { - content: "\f2c9"; -} - -.ion-android-arrow-back:before { - content: "\f2ca"; -} - -.ion-android-arrow-down:before { - content: "\f35d"; -} - -.ion-android-arrow-dropdown:before { - content: "\f35f"; -} - -.ion-android-arrow-dropdown-circle:before { - content: "\f35e"; -} - -.ion-android-arrow-dropleft:before { - content: "\f361"; -} - -.ion-android-arrow-dropleft-circle:before { - content: "\f360"; -} - -.ion-android-arrow-dropright:before { - content: "\f363"; -} - -.ion-android-arrow-dropright-circle:before { - content: "\f362"; -} - -.ion-android-arrow-dropup:before { - content: "\f365"; -} - -.ion-android-arrow-dropup-circle:before { - content: "\f364"; -} - -.ion-android-arrow-forward:before { - content: "\f30f"; -} - -.ion-android-arrow-up:before { - content: "\f366"; -} - -.ion-android-attach:before { - content: "\f367"; -} - -.ion-android-bar:before { - content: "\f368"; -} - -.ion-android-bicycle:before { - content: "\f369"; -} - -.ion-android-boat:before { - content: "\f36a"; -} - -.ion-android-bookmark:before { - content: "\f36b"; -} - -.ion-android-bulb:before { - content: "\f36c"; -} - -.ion-android-bus:before { - content: "\f36d"; -} - -.ion-android-calendar:before { - content: "\f2d1"; -} - -.ion-android-call:before { - content: "\f2d2"; -} - -.ion-android-camera:before { - content: "\f2d3"; -} - -.ion-android-cancel:before { - content: "\f36e"; -} - -.ion-android-car:before { - content: "\f36f"; -} - -.ion-android-cart:before { - content: "\f370"; -} - -.ion-android-chat:before { - content: "\f2d4"; -} - -.ion-android-checkbox:before { - content: "\f374"; -} - -.ion-android-checkbox-blank:before { - content: "\f371"; -} - -.ion-android-checkbox-outline:before { - content: "\f373"; -} - -.ion-android-checkbox-outline-blank:before { - content: "\f372"; -} - -.ion-android-checkmark-circle:before { - content: "\f375"; -} - -.ion-android-clipboard:before { - content: "\f376"; -} - -.ion-android-close:before { - content: "\f2d7"; -} - -.ion-android-cloud:before { - content: "\f37a"; -} - -.ion-android-cloud-circle:before { - content: "\f377"; -} - -.ion-android-cloud-done:before { - content: "\f378"; -} - -.ion-android-cloud-outline:before { - content: "\f379"; -} - -.ion-android-color-palette:before { - content: "\f37b"; -} - -.ion-android-compass:before { - content: "\f37c"; -} - -.ion-android-contact:before { - content: "\f2d8"; -} - -.ion-android-contacts:before { - content: "\f2d9"; -} - -.ion-android-contract:before { - content: "\f37d"; -} - -.ion-android-create:before { - content: "\f37e"; -} - -.ion-android-delete:before { - content: "\f37f"; -} - -.ion-android-desktop:before { - content: "\f380"; -} - -.ion-android-document:before { - content: "\f381"; -} - -.ion-android-done:before { - content: "\f383"; -} - -.ion-android-done-all:before { - content: "\f382"; -} - -.ion-android-download:before { - content: "\f2dd"; -} - -.ion-android-drafts:before { - content: "\f384"; -} - -.ion-android-exit:before { - content: "\f385"; -} - -.ion-android-expand:before { - content: "\f386"; -} - -.ion-android-favorite:before { - content: "\f388"; -} - -.ion-android-favorite-outline:before { - content: "\f387"; -} - -.ion-android-film:before { - content: "\f389"; -} - -.ion-android-folder:before { - content: "\f2e0"; -} - -.ion-android-folder-open:before { - content: "\f38a"; -} - -.ion-android-funnel:before { - content: "\f38b"; -} - -.ion-android-globe:before { - content: "\f38c"; -} - -.ion-android-hand:before { - content: "\f2e3"; -} - -.ion-android-hangout:before { - content: "\f38d"; -} - -.ion-android-happy:before { - content: "\f38e"; -} - -.ion-android-home:before { - content: "\f38f"; -} - -.ion-android-image:before { - content: "\f2e4"; -} - -.ion-android-laptop:before { - content: "\f390"; -} - -.ion-android-list:before { - content: "\f391"; -} - -.ion-android-locate:before { - content: "\f2e9"; -} - -.ion-android-lock:before { - content: "\f392"; -} - -.ion-android-mail:before { - content: "\f2eb"; -} - -.ion-android-map:before { - content: "\f393"; -} - -.ion-android-menu:before { - content: "\f394"; -} - -.ion-android-microphone:before { - content: "\f2ec"; -} - -.ion-android-microphone-off:before { - content: "\f395"; -} - -.ion-android-more-horizontal:before { - content: "\f396"; -} - -.ion-android-more-vertical:before { - content: "\f397"; -} - -.ion-android-navigate:before { - content: "\f398"; -} - -.ion-android-notifications:before { - content: "\f39b"; -} - -.ion-android-notifications-none:before { - content: "\f399"; -} - -.ion-android-notifications-off:before { - content: "\f39a"; -} - -.ion-android-open:before { - content: "\f39c"; -} - -.ion-android-options:before { - content: "\f39d"; -} - -.ion-android-people:before { - content: "\f39e"; -} - -.ion-android-person:before { - content: "\f3a0"; -} - -.ion-android-person-add:before { - content: "\f39f"; -} - -.ion-android-phone-landscape:before { - content: "\f3a1"; -} - -.ion-android-phone-portrait:before { - content: "\f3a2"; -} - -.ion-android-pin:before { - content: "\f3a3"; -} - -.ion-android-plane:before { - content: "\f3a4"; -} - -.ion-android-playstore:before { - content: "\f2f0"; -} - -.ion-android-print:before { - content: "\f3a5"; -} - -.ion-android-radio-button-off:before { - content: "\f3a6"; -} - -.ion-android-radio-button-on:before { - content: "\f3a7"; -} - -.ion-android-refresh:before { - content: "\f3a8"; -} - -.ion-android-remove:before { - content: "\f2f4"; -} - -.ion-android-remove-circle:before { - content: "\f3a9"; -} - -.ion-android-restaurant:before { - content: "\f3aa"; -} - -.ion-android-sad:before { - content: "\f3ab"; -} - -.ion-android-search:before { - content: "\f2f5"; -} - -.ion-android-send:before { - content: "\f2f6"; -} - -.ion-android-settings:before { - content: "\f2f7"; -} - -.ion-android-share:before { - content: "\f2f8"; -} - -.ion-android-share-alt:before { - content: "\f3ac"; -} - -.ion-android-star:before { - content: "\f2fc"; -} - -.ion-android-star-half:before { - content: "\f3ad"; -} - -.ion-android-star-outline:before { - content: "\f3ae"; -} - -.ion-android-stopwatch:before { - content: "\f2fd"; -} - -.ion-android-subway:before { - content: "\f3af"; -} - -.ion-android-sunny:before { - content: "\f3b0"; -} - -.ion-android-sync:before { - content: "\f3b1"; -} - -.ion-android-textsms:before { - content: "\f3b2"; -} - -.ion-android-time:before { - content: "\f3b3"; -} - -.ion-android-train:before { - content: "\f3b4"; -} - -.ion-android-unlock:before { - content: "\f3b5"; -} - -.ion-android-upload:before { - content: "\f3b6"; -} - -.ion-android-volume-down:before { - content: "\f3b7"; -} - -.ion-android-volume-mute:before { - content: "\f3b8"; -} - -.ion-android-volume-off:before { - content: "\f3b9"; -} - -.ion-android-volume-up:before { - content: "\f3ba"; -} - -.ion-android-walk:before { - content: "\f3bb"; -} - -.ion-android-warning:before { - content: "\f3bc"; -} - -.ion-android-watch:before { - content: "\f3bd"; -} - -.ion-android-wifi:before { - content: "\f305"; -} - -.ion-aperture:before { - content: "\f313"; -} - -.ion-archive:before { - content: "\f102"; -} - -.ion-arrow-down-a:before { - content: "\f103"; -} - -.ion-arrow-down-b:before { - content: "\f104"; -} - -.ion-arrow-down-c:before { - content: "\f105"; -} - -.ion-arrow-expand:before { - content: "\f25e"; -} - -.ion-arrow-graph-down-left:before { - content: "\f25f"; -} - -.ion-arrow-graph-down-right:before { - content: "\f260"; -} - -.ion-arrow-graph-up-left:before { - content: "\f261"; -} - -.ion-arrow-graph-up-right:before { - content: "\f262"; -} - -.ion-arrow-left-a:before { - content: "\f106"; -} - -.ion-arrow-left-b:before { - content: "\f107"; -} - -.ion-arrow-left-c:before { - content: "\f108"; -} - -.ion-arrow-move:before { - content: "\f263"; -} - -.ion-arrow-resize:before { - content: "\f264"; -} - -.ion-arrow-return-left:before { - content: "\f265"; -} - -.ion-arrow-return-right:before { - content: "\f266"; -} - -.ion-arrow-right-a:before { - content: "\f109"; -} - -.ion-arrow-right-b:before { - content: "\f10a"; -} - -.ion-arrow-right-c:before { - content: "\f10b"; -} - -.ion-arrow-shrink:before { - content: "\f267"; -} - -.ion-arrow-swap:before { - content: "\f268"; -} - -.ion-arrow-up-a:before { - content: "\f10c"; -} - -.ion-arrow-up-b:before { - content: "\f10d"; -} - -.ion-arrow-up-c:before { - content: "\f10e"; -} - -.ion-asterisk:before { - content: "\f314"; -} - -.ion-at:before { - content: "\f10f"; -} - -.ion-backspace:before { - content: "\f3bf"; -} - -.ion-backspace-outline:before { - content: "\f3be"; -} - -.ion-bag:before { - content: "\f110"; -} - -.ion-battery-charging:before { - content: "\f111"; -} - -.ion-battery-empty:before { - content: "\f112"; -} - -.ion-battery-full:before { - content: "\f113"; -} - -.ion-battery-half:before { - content: "\f114"; -} - -.ion-battery-low:before { - content: "\f115"; -} - -.ion-beaker:before { - content: "\f269"; -} - -.ion-beer:before { - content: "\f26a"; -} - -.ion-bluetooth:before { - content: "\f116"; -} - -.ion-bonfire:before { - content: "\f315"; -} - -.ion-bookmark:before { - content: "\f26b"; -} - -.ion-bowtie:before { - content: "\f3c0"; -} - -.ion-briefcase:before { - content: "\f26c"; -} - -.ion-bug:before { - content: "\f2be"; -} - -.ion-calculator:before { - content: "\f26d"; -} - -.ion-calendar:before { - content: "\f117"; -} - -.ion-camera:before { - content: "\f118"; -} - -.ion-card:before { - content: "\f119"; -} - -.ion-cash:before { - content: "\f316"; -} - -.ion-chatbox:before { - content: "\f11b"; -} - -.ion-chatbox-working:before { - content: "\f11a"; -} - -.ion-chatboxes:before { - content: "\f11c"; -} - -.ion-chatbubble:before { - content: "\f11e"; -} - -.ion-chatbubble-working:before { - content: "\f11d"; -} - -.ion-chatbubbles:before { - content: "\f11f"; -} - -.ion-checkmark:before { - content: "\f122"; -} - -.ion-checkmark-circled:before { - content: "\f120"; -} - -.ion-checkmark-round:before { - content: "\f121"; -} - -.ion-chevron-down:before { - content: "\f123"; -} - -.ion-chevron-left:before { - content: "\f124"; -} - -.ion-chevron-right:before { - content: "\f125"; -} - -.ion-chevron-up:before { - content: "\f126"; -} - -.ion-clipboard:before { - content: "\f127"; -} - -.ion-clock:before { - content: "\f26e"; -} - -.ion-close:before { - content: "\f12a"; -} - -.ion-close-circled:before { - content: "\f128"; -} - -.ion-close-round:before { - content: "\f129"; -} - -.ion-closed-captioning:before { - content: "\f317"; -} - -.ion-cloud:before { - content: "\f12b"; -} - -.ion-code:before { - content: "\f271"; -} - -.ion-code-download:before { - content: "\f26f"; -} - -.ion-code-working:before { - content: "\f270"; -} - -.ion-coffee:before { - content: "\f272"; -} - -.ion-compass:before { - content: "\f273"; -} - -.ion-compose:before { - content: "\f12c"; -} - -.ion-connection-bars:before { - content: "\f274"; -} - -.ion-contrast:before { - content: "\f275"; -} - -.ion-crop:before { - content: "\f3c1"; -} - -.ion-cube:before { - content: "\f318"; -} - -.ion-disc:before { - content: "\f12d"; -} - -.ion-document:before { - content: "\f12f"; -} - -.ion-document-text:before { - content: "\f12e"; -} - -.ion-drag:before { - content: "\f130"; -} - -.ion-earth:before { - content: "\f276"; -} - -.ion-easel:before { - content: "\f3c2"; -} - -.ion-edit:before { - content: "\f2bf"; -} - -.ion-egg:before { - content: "\f277"; -} - -.ion-eject:before { - content: "\f131"; -} - -.ion-email:before { - content: "\f132"; -} - -.ion-email-unread:before { - content: "\f3c3"; -} - -.ion-erlenmeyer-flask:before { - content: "\f3c5"; -} - -.ion-erlenmeyer-flask-bubbles:before { - content: "\f3c4"; -} - -.ion-eye:before { - content: "\f133"; -} - -.ion-eye-disabled:before { - content: "\f306"; -} - -.ion-female:before { - content: "\f278"; -} - -.ion-filing:before { - content: "\f134"; -} - -.ion-film-marker:before { - content: "\f135"; -} - -.ion-fireball:before { - content: "\f319"; -} - -.ion-flag:before { - content: "\f279"; -} - -.ion-flame:before { - content: "\f31a"; -} - -.ion-flash:before { - content: "\f137"; -} - -.ion-flash-off:before { - content: "\f136"; -} - -.ion-folder:before { - content: "\f139"; -} - -.ion-fork:before { - content: "\f27a"; -} - -.ion-fork-repo:before { - content: "\f2c0"; -} - -.ion-forward:before { - content: "\f13a"; -} - -.ion-funnel:before { - content: "\f31b"; -} - -.ion-gear-a:before { - content: "\f13d"; -} - -.ion-gear-b:before { - content: "\f13e"; -} - -.ion-grid:before { - content: "\f13f"; -} - -.ion-hammer:before { - content: "\f27b"; -} - -.ion-happy:before { - content: "\f31c"; -} - -.ion-happy-outline:before { - content: "\f3c6"; -} - -.ion-headphone:before { - content: "\f140"; -} - -.ion-heart:before { - content: "\f141"; -} - -.ion-heart-broken:before { - content: "\f31d"; -} - -.ion-help:before { - content: "\f143"; -} - -.ion-help-buoy:before { - content: "\f27c"; -} - -.ion-help-circled:before { - content: "\f142"; -} - -.ion-home:before { - content: "\f144"; -} - -.ion-icecream:before { - content: "\f27d"; -} - -.ion-image:before { - content: "\f147"; -} - -.ion-images:before { - content: "\f148"; -} - -.ion-information:before { - content: "\f14a"; -} - -.ion-information-circled:before { - content: "\f149"; -} - -.ion-ionic:before { - content: "\f14b"; -} - -.ion-ios-alarm:before { - content: "\f3c8"; -} - -.ion-ios-alarm-outline:before { - content: "\f3c7"; -} - -.ion-ios-albums:before { - content: "\f3ca"; -} - -.ion-ios-albums-outline:before { - content: "\f3c9"; -} - -.ion-ios-americanfootball:before { - content: "\f3cc"; -} - -.ion-ios-americanfootball-outline:before { - content: "\f3cb"; -} - -.ion-ios-analytics:before { - content: "\f3ce"; -} - -.ion-ios-analytics-outline:before { - content: "\f3cd"; -} - -.ion-ios-arrow-back:before { - content: "\f3cf"; -} - -.ion-ios-arrow-down:before { - content: "\f3d0"; -} - -.ion-ios-arrow-forward:before { - content: "\f3d1"; -} - -.ion-ios-arrow-left:before { - content: "\f3d2"; -} - -.ion-ios-arrow-right:before { - content: "\f3d3"; -} - -.ion-ios-arrow-thin-down:before { - content: "\f3d4"; -} - -.ion-ios-arrow-thin-left:before { - content: "\f3d5"; -} - -.ion-ios-arrow-thin-right:before { - content: "\f3d6"; -} - -.ion-ios-arrow-thin-up:before { - content: "\f3d7"; -} - -.ion-ios-arrow-up:before { - content: "\f3d8"; -} - -.ion-ios-at:before { - content: "\f3da"; -} - -.ion-ios-at-outline:before { - content: "\f3d9"; -} - -.ion-ios-barcode:before { - content: "\f3dc"; -} - -.ion-ios-barcode-outline:before { - content: "\f3db"; -} - -.ion-ios-baseball:before { - content: "\f3de"; -} - -.ion-ios-baseball-outline:before { - content: "\f3dd"; -} - -.ion-ios-basketball:before { - content: "\f3e0"; -} - -.ion-ios-basketball-outline:before { - content: "\f3df"; -} - -.ion-ios-bell:before { - content: "\f3e2"; -} - -.ion-ios-bell-outline:before { - content: "\f3e1"; -} - -.ion-ios-body:before { - content: "\f3e4"; -} - -.ion-ios-body-outline:before { - content: "\f3e3"; -} - -.ion-ios-bolt:before { - content: "\f3e6"; -} - -.ion-ios-bolt-outline:before { - content: "\f3e5"; -} - -.ion-ios-book:before { - content: "\f3e8"; -} - -.ion-ios-book-outline:before { - content: "\f3e7"; -} - -.ion-ios-bookmarks:before { - content: "\f3ea"; -} - -.ion-ios-bookmarks-outline:before { - content: "\f3e9"; -} - -.ion-ios-box:before { - content: "\f3ec"; -} - -.ion-ios-box-outline:before { - content: "\f3eb"; -} - -.ion-ios-briefcase:before { - content: "\f3ee"; -} - -.ion-ios-briefcase-outline:before { - content: "\f3ed"; -} - -.ion-ios-browsers:before { - content: "\f3f0"; -} - -.ion-ios-browsers-outline:before { - content: "\f3ef"; -} - -.ion-ios-calculator:before { - content: "\f3f2"; -} - -.ion-ios-calculator-outline:before { - content: "\f3f1"; -} - -.ion-ios-calendar:before { - content: "\f3f4"; -} - -.ion-ios-calendar-outline:before { - content: "\f3f3"; -} - -.ion-ios-camera:before { - content: "\f3f6"; -} - -.ion-ios-camera-outline:before { - content: "\f3f5"; -} - -.ion-ios-cart:before { - content: "\f3f8"; -} - -.ion-ios-cart-outline:before { - content: "\f3f7"; -} - -.ion-ios-chatboxes:before { - content: "\f3fa"; -} - -.ion-ios-chatboxes-outline:before { - content: "\f3f9"; -} - -.ion-ios-chatbubble:before { - content: "\f3fc"; -} - -.ion-ios-chatbubble-outline:before { - content: "\f3fb"; -} - -.ion-ios-checkmark:before { - content: "\f3ff"; -} - -.ion-ios-checkmark-empty:before { - content: "\f3fd"; -} - -.ion-ios-checkmark-outline:before { - content: "\f3fe"; -} - -.ion-ios-circle-filled:before { - content: "\f400"; -} - -.ion-ios-circle-outline:before { - content: "\f401"; -} - -.ion-ios-clock:before { - content: "\f403"; -} - -.ion-ios-clock-outline:before { - content: "\f402"; -} - -.ion-ios-close:before { - content: "\f406"; -} - -.ion-ios-close-empty:before { - content: "\f404"; -} - -.ion-ios-close-outline:before { - content: "\f405"; -} - -.ion-ios-cloud:before { - content: "\f40c"; -} - -.ion-ios-cloud-download:before { - content: "\f408"; -} - -.ion-ios-cloud-download-outline:before { - content: "\f407"; -} - -.ion-ios-cloud-outline:before { - content: "\f409"; -} - -.ion-ios-cloud-upload:before { - content: "\f40b"; -} - -.ion-ios-cloud-upload-outline:before { - content: "\f40a"; -} - -.ion-ios-cloudy:before { - content: "\f410"; -} - -.ion-ios-cloudy-night:before { - content: "\f40e"; -} - -.ion-ios-cloudy-night-outline:before { - content: "\f40d"; -} - -.ion-ios-cloudy-outline:before { - content: "\f40f"; -} - -.ion-ios-cog:before { - content: "\f412"; -} - -.ion-ios-cog-outline:before { - content: "\f411"; -} - -.ion-ios-color-filter:before { - content: "\f414"; -} - -.ion-ios-color-filter-outline:before { - content: "\f413"; -} - -.ion-ios-color-wand:before { - content: "\f416"; -} - -.ion-ios-color-wand-outline:before { - content: "\f415"; -} - -.ion-ios-compose:before { - content: "\f418"; -} - -.ion-ios-compose-outline:before { - content: "\f417"; -} - -.ion-ios-contact:before { - content: "\f41a"; -} - -.ion-ios-contact-outline:before { - content: "\f419"; -} - -.ion-ios-copy:before { - content: "\f41c"; -} - -.ion-ios-copy-outline:before { - content: "\f41b"; -} - -.ion-ios-crop:before { - content: "\f41e"; -} - -.ion-ios-crop-strong:before { - content: "\f41d"; -} - -.ion-ios-download:before { - content: "\f420"; -} - -.ion-ios-download-outline:before { - content: "\f41f"; -} - -.ion-ios-drag:before { - content: "\f421"; -} - -.ion-ios-email:before { - content: "\f423"; -} - -.ion-ios-email-outline:before { - content: "\f422"; -} - -.ion-ios-eye:before { - content: "\f425"; -} - -.ion-ios-eye-outline:before { - content: "\f424"; -} - -.ion-ios-fastforward:before { - content: "\f427"; -} - -.ion-ios-fastforward-outline:before { - content: "\f426"; -} - -.ion-ios-filing:before { - content: "\f429"; -} - -.ion-ios-filing-outline:before { - content: "\f428"; -} - -.ion-ios-film:before { - content: "\f42b"; -} - -.ion-ios-film-outline:before { - content: "\f42a"; -} - -.ion-ios-flag:before { - content: "\f42d"; -} - -.ion-ios-flag-outline:before { - content: "\f42c"; -} - -.ion-ios-flame:before { - content: "\f42f"; -} - -.ion-ios-flame-outline:before { - content: "\f42e"; -} - -.ion-ios-flask:before { - content: "\f431"; -} - -.ion-ios-flask-outline:before { - content: "\f430"; -} - -.ion-ios-flower:before { - content: "\f433"; -} - -.ion-ios-flower-outline:before { - content: "\f432"; -} - -.ion-ios-folder:before { - content: "\f435"; -} - -.ion-ios-folder-outline:before { - content: "\f434"; -} - -.ion-ios-football:before { - content: "\f437"; -} - -.ion-ios-football-outline:before { - content: "\f436"; -} - -.ion-ios-game-controller-a:before { - content: "\f439"; -} - -.ion-ios-game-controller-a-outline:before { - content: "\f438"; -} - -.ion-ios-game-controller-b:before { - content: "\f43b"; -} - -.ion-ios-game-controller-b-outline:before { - content: "\f43a"; -} - -.ion-ios-gear:before { - content: "\f43d"; -} - -.ion-ios-gear-outline:before { - content: "\f43c"; -} - -.ion-ios-glasses:before { - content: "\f43f"; -} - -.ion-ios-glasses-outline:before { - content: "\f43e"; -} - -.ion-ios-grid-view:before { - content: "\f441"; -} - -.ion-ios-grid-view-outline:before { - content: "\f440"; -} - -.ion-ios-heart:before { - content: "\f443"; -} - -.ion-ios-heart-outline:before { - content: "\f442"; -} - -.ion-ios-help:before { - content: "\f446"; -} - -.ion-ios-help-empty:before { - content: "\f444"; -} - -.ion-ios-help-outline:before { - content: "\f445"; -} - -.ion-ios-home:before { - content: "\f448"; -} - -.ion-ios-home-outline:before { - content: "\f447"; -} - -.ion-ios-infinite:before { - content: "\f44a"; -} - -.ion-ios-infinite-outline:before { - content: "\f449"; -} - -.ion-ios-information:before { - content: "\f44d"; -} - -.ion-ios-information-empty:before { - content: "\f44b"; -} - -.ion-ios-information-outline:before { - content: "\f44c"; -} - -.ion-ios-ionic-outline:before { - content: "\f44e"; -} - -.ion-ios-keypad:before { - content: "\f450"; -} - -.ion-ios-keypad-outline:before { - content: "\f44f"; -} - -.ion-ios-lightbulb:before { - content: "\f452"; -} - -.ion-ios-lightbulb-outline:before { - content: "\f451"; -} - -.ion-ios-list:before { - content: "\f454"; -} - -.ion-ios-list-outline:before { - content: "\f453"; -} - -.ion-ios-location:before { - content: "\f456"; -} - -.ion-ios-location-outline:before { - content: "\f455"; -} - -.ion-ios-locked:before { - content: "\f458"; -} - -.ion-ios-locked-outline:before { - content: "\f457"; -} - -.ion-ios-loop:before { - content: "\f45a"; -} - -.ion-ios-loop-strong:before { - content: "\f459"; -} - -.ion-ios-medical:before { - content: "\f45c"; -} - -.ion-ios-medical-outline:before { - content: "\f45b"; -} - -.ion-ios-medkit:before { - content: "\f45e"; -} - -.ion-ios-medkit-outline:before { - content: "\f45d"; -} - -.ion-ios-mic:before { - content: "\f461"; -} - -.ion-ios-mic-off:before { - content: "\f45f"; -} - -.ion-ios-mic-outline:before { - content: "\f460"; -} - -.ion-ios-minus:before { - content: "\f464"; -} - -.ion-ios-minus-empty:before { - content: "\f462"; -} - -.ion-ios-minus-outline:before { - content: "\f463"; -} - -.ion-ios-monitor:before { - content: "\f466"; -} - -.ion-ios-monitor-outline:before { - content: "\f465"; -} - -.ion-ios-moon:before { - content: "\f468"; -} - -.ion-ios-moon-outline:before { - content: "\f467"; -} - -.ion-ios-more:before { - content: "\f46a"; -} - -.ion-ios-more-outline:before { - content: "\f469"; -} - -.ion-ios-musical-note:before { - content: "\f46b"; -} - -.ion-ios-musical-notes:before { - content: "\f46c"; -} - -.ion-ios-navigate:before { - content: "\f46e"; -} - -.ion-ios-navigate-outline:before { - content: "\f46d"; -} - -.ion-ios-nutrition:before { - content: "\f470"; -} - -.ion-ios-nutrition-outline:before { - content: "\f46f"; -} - -.ion-ios-paper:before { - content: "\f472"; -} - -.ion-ios-paper-outline:before { - content: "\f471"; -} - -.ion-ios-paperplane:before { - content: "\f474"; -} - -.ion-ios-paperplane-outline:before { - content: "\f473"; -} - -.ion-ios-partlysunny:before { - content: "\f476"; -} - -.ion-ios-partlysunny-outline:before { - content: "\f475"; -} - -.ion-ios-pause:before { - content: "\f478"; -} - -.ion-ios-pause-outline:before { - content: "\f477"; -} - -.ion-ios-paw:before { - content: "\f47a"; -} - -.ion-ios-paw-outline:before { - content: "\f479"; -} - -.ion-ios-people:before { - content: "\f47c"; -} - -.ion-ios-people-outline:before { - content: "\f47b"; -} - -.ion-ios-person:before { - content: "\f47e"; -} - -.ion-ios-person-outline:before { - content: "\f47d"; -} - -.ion-ios-personadd:before { - content: "\f480"; -} - -.ion-ios-personadd-outline:before { - content: "\f47f"; -} - -.ion-ios-photos:before { - content: "\f482"; -} - -.ion-ios-photos-outline:before { - content: "\f481"; -} - -.ion-ios-pie:before { - content: "\f484"; -} - -.ion-ios-pie-outline:before { - content: "\f483"; -} - -.ion-ios-pint:before { - content: "\f486"; -} - -.ion-ios-pint-outline:before { - content: "\f485"; -} - -.ion-ios-play:before { - content: "\f488"; -} - -.ion-ios-play-outline:before { - content: "\f487"; -} - -.ion-ios-plus:before { - content: "\f48b"; -} - -.ion-ios-plus-empty:before { - content: "\f489"; -} - -.ion-ios-plus-outline:before { - content: "\f48a"; -} - -.ion-ios-pricetag:before { - content: "\f48d"; -} - -.ion-ios-pricetag-outline:before { - content: "\f48c"; -} - -.ion-ios-pricetags:before { - content: "\f48f"; -} - -.ion-ios-pricetags-outline:before { - content: "\f48e"; -} - -.ion-ios-printer:before { - content: "\f491"; -} - -.ion-ios-printer-outline:before { - content: "\f490"; -} - -.ion-ios-pulse:before { - content: "\f493"; -} - -.ion-ios-pulse-strong:before { - content: "\f492"; -} - -.ion-ios-rainy:before { - content: "\f495"; -} - -.ion-ios-rainy-outline:before { - content: "\f494"; -} - -.ion-ios-recording:before { - content: "\f497"; -} - -.ion-ios-recording-outline:before { - content: "\f496"; -} - -.ion-ios-redo:before { - content: "\f499"; -} - -.ion-ios-redo-outline:before { - content: "\f498"; -} - -.ion-ios-refresh:before { - content: "\f49c"; -} - -.ion-ios-refresh-empty:before { - content: "\f49a"; -} - -.ion-ios-refresh-outline:before { - content: "\f49b"; -} - -.ion-ios-reload:before { - content: "\f49d"; -} - -.ion-ios-reverse-camera:before { - content: "\f49f"; -} - -.ion-ios-reverse-camera-outline:before { - content: "\f49e"; -} - -.ion-ios-rewind:before { - content: "\f4a1"; -} - -.ion-ios-rewind-outline:before { - content: "\f4a0"; -} - -.ion-ios-rose:before { - content: "\f4a3"; -} - -.ion-ios-rose-outline:before { - content: "\f4a2"; -} - -.ion-ios-search:before { - content: "\f4a5"; -} - -.ion-ios-search-strong:before { - content: "\f4a4"; -} - -.ion-ios-settings:before { - content: "\f4a7"; -} - -.ion-ios-settings-strong:before { - content: "\f4a6"; -} - -.ion-ios-shuffle:before { - content: "\f4a9"; -} - -.ion-ios-shuffle-strong:before { - content: "\f4a8"; -} - -.ion-ios-skipbackward:before { - content: "\f4ab"; -} - -.ion-ios-skipbackward-outline:before { - content: "\f4aa"; -} - -.ion-ios-skipforward:before { - content: "\f4ad"; -} - -.ion-ios-skipforward-outline:before { - content: "\f4ac"; -} - -.ion-ios-snowy:before { - content: "\f4ae"; -} - -.ion-ios-speedometer:before { - content: "\f4b0"; -} - -.ion-ios-speedometer-outline:before { - content: "\f4af"; -} - -.ion-ios-star:before { - content: "\f4b3"; -} - -.ion-ios-star-half:before { - content: "\f4b1"; -} - -.ion-ios-star-outline:before { - content: "\f4b2"; -} - -.ion-ios-stopwatch:before { - content: "\f4b5"; -} - -.ion-ios-stopwatch-outline:before { - content: "\f4b4"; -} - -.ion-ios-sunny:before { - content: "\f4b7"; -} - -.ion-ios-sunny-outline:before { - content: "\f4b6"; -} - -.ion-ios-telephone:before { - content: "\f4b9"; -} - -.ion-ios-telephone-outline:before { - content: "\f4b8"; -} - -.ion-ios-tennisball:before { - content: "\f4bb"; -} - -.ion-ios-tennisball-outline:before { - content: "\f4ba"; -} - -.ion-ios-thunderstorm:before { - content: "\f4bd"; -} - -.ion-ios-thunderstorm-outline:before { - content: "\f4bc"; -} - -.ion-ios-time:before { - content: "\f4bf"; -} - -.ion-ios-time-outline:before { - content: "\f4be"; -} - -.ion-ios-timer:before { - content: "\f4c1"; -} - -.ion-ios-timer-outline:before { - content: "\f4c0"; -} - -.ion-ios-toggle:before { - content: "\f4c3"; -} - -.ion-ios-toggle-outline:before { - content: "\f4c2"; -} - -.ion-ios-trash:before { - content: "\f4c5"; -} - -.ion-ios-trash-outline:before { - content: "\f4c4"; -} - -.ion-ios-undo:before { - content: "\f4c7"; -} - -.ion-ios-undo-outline:before { - content: "\f4c6"; -} - -.ion-ios-unlocked:before { - content: "\f4c9"; -} - -.ion-ios-unlocked-outline:before { - content: "\f4c8"; -} - -.ion-ios-upload:before { - content: "\f4cb"; -} - -.ion-ios-upload-outline:before { - content: "\f4ca"; -} - -.ion-ios-videocam:before { - content: "\f4cd"; -} - -.ion-ios-videocam-outline:before { - content: "\f4cc"; -} - -.ion-ios-volume-high:before { - content: "\f4ce"; -} - -.ion-ios-volume-low:before { - content: "\f4cf"; -} - -.ion-ios-wineglass:before { - content: "\f4d1"; -} - -.ion-ios-wineglass-outline:before { - content: "\f4d0"; -} - -.ion-ios-world:before { - content: "\f4d3"; -} - -.ion-ios-world-outline:before { - content: "\f4d2"; -} - -.ion-ipad:before { - content: "\f1f9"; -} - -.ion-iphone:before { - content: "\f1fa"; -} - -.ion-ipod:before { - content: "\f1fb"; -} - -.ion-jet:before { - content: "\f295"; -} - -.ion-key:before { - content: "\f296"; -} - -.ion-knife:before { - content: "\f297"; -} - -.ion-laptop:before { - content: "\f1fc"; -} - -.ion-leaf:before { - content: "\f1fd"; -} - -.ion-levels:before { - content: "\f298"; -} - -.ion-lightbulb:before { - content: "\f299"; -} - -.ion-link:before { - content: "\f1fe"; -} - -.ion-load-a:before { - content: "\f29a"; -} - -.ion-load-b:before { - content: "\f29b"; -} - -.ion-load-c:before { - content: "\f29c"; -} - -.ion-load-d:before { - content: "\f29d"; -} - -.ion-location:before { - content: "\f1ff"; -} - -.ion-lock-combination:before { - content: "\f4d4"; -} - -.ion-locked:before { - content: "\f200"; -} - -.ion-log-in:before { - content: "\f29e"; -} - -.ion-log-out:before { - content: "\f29f"; -} - -.ion-loop:before { - content: "\f201"; -} - -.ion-magnet:before { - content: "\f2a0"; -} - -.ion-male:before { - content: "\f2a1"; -} - -.ion-man:before { - content: "\f202"; -} - -.ion-map:before { - content: "\f203"; -} - -.ion-medkit:before { - content: "\f2a2"; -} - -.ion-merge:before { - content: "\f33f"; -} - -.ion-mic-a:before { - content: "\f204"; -} - -.ion-mic-b:before { - content: "\f205"; -} - -.ion-mic-c:before { - content: "\f206"; -} - -.ion-minus:before { - content: "\f209"; -} - -.ion-minus-circled:before { - content: "\f207"; -} - -.ion-minus-round:before { - content: "\f208"; -} - -.ion-model-s:before { - content: "\f2c1"; -} - -.ion-monitor:before { - content: "\f20a"; -} - -.ion-more:before { - content: "\f20b"; -} - -.ion-mouse:before { - content: "\f340"; -} - -.ion-music-note:before { - content: "\f20c"; -} - -.ion-navicon:before { - content: "\f20e"; -} - -.ion-navicon-round:before { - content: "\f20d"; -} - -.ion-navigate:before { - content: "\f2a3"; -} - -.ion-network:before { - content: "\f341"; -} - -.ion-no-smoking:before { - content: "\f2c2"; -} - -.ion-nuclear:before { - content: "\f2a4"; -} - -.ion-outlet:before { - content: "\f342"; -} - -.ion-paintbrush:before { - content: "\f4d5"; -} - -.ion-paintbucket:before { - content: "\f4d6"; -} - -.ion-paper-airplane:before { - content: "\f2c3"; -} - -.ion-paperclip:before { - content: "\f20f"; -} - -.ion-pause:before { - content: "\f210"; -} - -.ion-person:before { - content: "\f213"; -} - -.ion-person-add:before { - content: "\f211"; -} - -.ion-person-stalker:before { - content: "\f212"; -} - -.ion-pie-graph:before { - content: "\f2a5"; -} - -.ion-pin:before { - content: "\f2a6"; -} - -.ion-pinpoint:before { - content: "\f2a7"; -} - -.ion-pizza:before { - content: "\f2a8"; -} - -.ion-plane:before { - content: "\f214"; -} - -.ion-planet:before { - content: "\f343"; -} - -.ion-play:before { - content: "\f215"; -} - -.ion-playstation:before { - content: "\f30a"; -} - -.ion-plus:before { - content: "\f218"; -} - -.ion-plus-circled:before { - content: "\f216"; -} - -.ion-plus-round:before { - content: "\f217"; -} - -.ion-podium:before { - content: "\f344"; -} - -.ion-pound:before { - content: "\f219"; -} - -.ion-power:before { - content: "\f2a9"; -} - -.ion-pricetag:before { - content: "\f2aa"; -} - -.ion-pricetags:before { - content: "\f2ab"; -} - -.ion-printer:before { - content: "\f21a"; -} - -.ion-pull-request:before { - content: "\f345"; -} - -.ion-qr-scanner:before { - content: "\f346"; -} - -.ion-quote:before { - content: "\f347"; -} - -.ion-radio-waves:before { - content: "\f2ac"; -} - -.ion-record:before { - content: "\f21b"; -} - -.ion-refresh:before { - content: "\f21c"; -} - -.ion-reply:before { - content: "\f21e"; -} - -.ion-reply-all:before { - content: "\f21d"; -} - -.ion-ribbon-a:before { - content: "\f348"; -} - -.ion-ribbon-b:before { - content: "\f349"; -} - -.ion-sad:before { - content: "\f34a"; -} - -.ion-sad-outline:before { - content: "\f4d7"; -} - -.ion-scissors:before { - content: "\f34b"; -} - -.ion-search:before { - content: "\f21f"; -} - -.ion-settings:before { - content: "\f2ad"; -} - -.ion-share:before { - content: "\f220"; -} - -.ion-shuffle:before { - content: "\f221"; -} - -.ion-skip-backward:before { - content: "\f222"; -} - -.ion-skip-forward:before { - content: "\f223"; -} - -.ion-social-android:before { - content: "\f225"; -} - -.ion-social-android-outline:before { - content: "\f224"; -} - -.ion-social-angular:before { - content: "\f4d9"; -} - -.ion-social-angular-outline:before { - content: "\f4d8"; -} - -.ion-social-apple:before { - content: "\f227"; -} - -.ion-social-apple-outline:before { - content: "\f226"; -} - -.ion-social-bitcoin:before { - content: "\f2af"; -} - -.ion-social-bitcoin-outline:before { - content: "\f2ae"; -} - -.ion-social-buffer:before { - content: "\f229"; -} - -.ion-social-buffer-outline:before { - content: "\f228"; -} - -.ion-social-chrome:before { - content: "\f4db"; -} - -.ion-social-chrome-outline:before { - content: "\f4da"; -} - -.ion-social-codepen:before { - content: "\f4dd"; -} - -.ion-social-codepen-outline:before { - content: "\f4dc"; -} - -.ion-social-css3:before { - content: "\f4df"; -} - -.ion-social-css3-outline:before { - content: "\f4de"; -} - -.ion-social-designernews:before { - content: "\f22b"; -} - -.ion-social-designernews-outline:before { - content: "\f22a"; -} - -.ion-social-dribbble:before { - content: "\f22d"; -} - -.ion-social-dribbble-outline:before { - content: "\f22c"; -} - -.ion-social-dropbox:before { - content: "\f22f"; -} - -.ion-social-dropbox-outline:before { - content: "\f22e"; -} - -.ion-social-euro:before { - content: "\f4e1"; -} - -.ion-social-euro-outline:before { - content: "\f4e0"; -} - -.ion-social-facebook:before { - content: "\f231"; -} - -.ion-social-facebook-outline:before { - content: "\f230"; -} - -.ion-social-foursquare:before { - content: "\f34d"; -} - -.ion-social-foursquare-outline:before { - content: "\f34c"; -} - -.ion-social-freebsd-devil:before { - content: "\f2c4"; -} - -.ion-social-github:before { - content: "\f233"; -} - -.ion-social-github-outline:before { - content: "\f232"; -} - -.ion-social-google:before { - content: "\f34f"; -} - -.ion-social-google-outline:before { - content: "\f34e"; -} - -.ion-social-googleplus:before { - content: "\f235"; -} - -.ion-social-googleplus-outline:before { - content: "\f234"; -} - -.ion-social-hackernews:before { - content: "\f237"; -} - -.ion-social-hackernews-outline:before { - content: "\f236"; -} - -.ion-social-html5:before { - content: "\f4e3"; -} - -.ion-social-html5-outline:before { - content: "\f4e2"; -} - -.ion-social-instagram:before { - content: "\f351"; -} - -.ion-social-instagram-outline:before { - content: "\f350"; -} - -.ion-social-javascript:before { - content: "\f4e5"; -} - -.ion-social-javascript-outline:before { - content: "\f4e4"; -} - -.ion-social-linkedin:before { - content: "\f239"; -} - -.ion-social-linkedin-outline:before { - content: "\f238"; -} - -.ion-social-markdown:before { - content: "\f4e6"; -} - -.ion-social-nodejs:before { - content: "\f4e7"; -} - -.ion-social-octocat:before { - content: "\f4e8"; -} - -.ion-social-pinterest:before { - content: "\f2b1"; -} - -.ion-social-pinterest-outline:before { - content: "\f2b0"; -} - -.ion-social-python:before { - content: "\f4e9"; -} - -.ion-social-reddit:before { - content: "\f23b"; -} - -.ion-social-reddit-outline:before { - content: "\f23a"; -} - -.ion-social-rss:before { - content: "\f23d"; -} - -.ion-social-rss-outline:before { - content: "\f23c"; -} - -.ion-social-sass:before { - content: "\f4ea"; -} - -.ion-social-skype:before { - content: "\f23f"; -} - -.ion-social-skype-outline:before { - content: "\f23e"; -} - -.ion-social-snapchat:before { - content: "\f4ec"; -} - -.ion-social-snapchat-outline:before { - content: "\f4eb"; -} - -.ion-social-tumblr:before { - content: "\f241"; -} - -.ion-social-tumblr-outline:before { - content: "\f240"; -} - -.ion-social-tux:before { - content: "\f2c5"; -} - -.ion-social-twitch:before { - content: "\f4ee"; -} - -.ion-social-twitch-outline:before { - content: "\f4ed"; -} - -.ion-social-twitter:before { - content: "\f243"; -} - -.ion-social-twitter-outline:before { - content: "\f242"; -} - -.ion-social-usd:before { - content: "\f353"; -} - -.ion-social-usd-outline:before { - content: "\f352"; -} - -.ion-social-vimeo:before { - content: "\f245"; -} - -.ion-social-vimeo-outline:before { - content: "\f244"; -} - -.ion-social-whatsapp:before { - content: "\f4f0"; -} - -.ion-social-whatsapp-outline:before { - content: "\f4ef"; -} - -.ion-social-windows:before { - content: "\f247"; -} - -.ion-social-windows-outline:before { - content: "\f246"; -} - -.ion-social-wordpress:before { - content: "\f249"; -} - -.ion-social-wordpress-outline:before { - content: "\f248"; -} - -.ion-social-yahoo:before { - content: "\f24b"; -} - -.ion-social-yahoo-outline:before { - content: "\f24a"; -} - -.ion-social-yen:before { - content: "\f4f2"; -} - -.ion-social-yen-outline:before { - content: "\f4f1"; -} - -.ion-social-youtube:before { - content: "\f24d"; -} - -.ion-social-youtube-outline:before { - content: "\f24c"; -} - -.ion-soup-can:before { - content: "\f4f4"; -} - -.ion-soup-can-outline:before { - content: "\f4f3"; -} - -.ion-speakerphone:before { - content: "\f2b2"; -} - -.ion-speedometer:before { - content: "\f2b3"; -} - -.ion-spoon:before { - content: "\f2b4"; -} - -.ion-star:before { - content: "\f24e"; -} - -.ion-stats-bars:before { - content: "\f2b5"; -} - -.ion-steam:before { - content: "\f30b"; -} - -.ion-stop:before { - content: "\f24f"; -} - -.ion-thermometer:before { - content: "\f2b6"; -} - -.ion-thumbsdown:before { - content: "\f250"; -} - -.ion-thumbsup:before { - content: "\f251"; -} - -.ion-toggle:before { - content: "\f355"; -} - -.ion-toggle-filled:before { - content: "\f354"; -} - -.ion-transgender:before { - content: "\f4f5"; -} - -.ion-trash-a:before { - content: "\f252"; -} - -.ion-trash-b:before { - content: "\f253"; -} - -.ion-trophy:before { - content: "\f356"; -} - -.ion-tshirt:before { - content: "\f4f7"; -} - -.ion-tshirt-outline:before { - content: "\f4f6"; -} - -.ion-umbrella:before { - content: "\f2b7"; -} - -.ion-university:before { - content: "\f357"; -} - -.ion-unlocked:before { - content: "\f254"; -} - -.ion-upload:before { - content: "\f255"; -} - -.ion-usb:before { - content: "\f2b8"; -} - -.ion-videocamera:before { - content: "\f256"; -} - -.ion-volume-high:before { - content: "\f257"; -} - -.ion-volume-low:before { - content: "\f258"; -} - -.ion-volume-medium:before { - content: "\f259"; -} - -.ion-volume-mute:before { - content: "\f25a"; -} - -.ion-wand:before { - content: "\f358"; -} - -.ion-waterdrop:before { - content: "\f25b"; -} - -.ion-wifi:before { - content: "\f25c"; -} - -.ion-wineglass:before { - content: "\f2b9"; -} - -.ion-woman:before { - content: "\f25d"; -} - -.ion-wrench:before { - content: "\f2ba"; -} - -.ion-xbox:before { - content: "\f30c"; -} \ No newline at end of file diff --git a/assets/css/magnific-popup.css b/assets/css/magnific-popup.css deleted file mode 100644 index 6649a1c..0000000 --- a/assets/css/magnific-popup.css +++ /dev/null @@ -1,475 +0,0 @@ -/* Magnific Popup CSS */ -.mfp-bg { - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1042; - overflow: hidden; - position: fixed; - background: #0b0b0b; - opacity: 0.8; - filter: alpha(opacity=80); -} - -.mfp-wrap { - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 1043; - position: fixed; - outline: none !important; - -webkit-backface-visibility: hidden; -} - -.mfp-container { - text-align: center; - position: absolute; - width: 100%; - height: 100%; - left: 0; - top: 0; - padding: 0 8px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -.mfp-container:before { - content: ''; - display: inline-block; - height: 100%; - vertical-align: middle; -} - -.mfp-align-top .mfp-container:before { - display: none; -} - -.mfp-content { - position: relative; - display: inline-block; - vertical-align: middle; - margin: 0 auto; - text-align: left; - z-index: 1045; -} - -.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content { - width: 100%; - cursor: auto; -} - -.mfp-ajax-cur { - cursor: progress; -} - -.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { - cursor: -moz-zoom-out; - cursor: -webkit-zoom-out; - cursor: zoom-out; -} - -.mfp-zoom { - cursor: pointer; - cursor: -webkit-zoom-in; - cursor: -moz-zoom-in; - cursor: zoom-in; -} - -.mfp-auto-cursor .mfp-content { - cursor: auto; -} - -.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter { - -webkit-user-select: none; - -moz-user-select: none; - -webkit-user-select: none; -} - -.mfp-loading.mfp-figure { - display: none; -} - -.mfp-hide { - display: none !important; -} - -.mfp-preloader { - color: #CCC; - position: absolute; - top: 50%; - width: auto; - text-align: center; - margin-top: -0.8em; - left: 8px; - right: 8px; - z-index: 1044; -} - -.mfp-preloader a { - color: #CCC; -} - -.mfp-preloader a:hover { - color: #FFF; -} - -.mfp-s-ready .mfp-preloader { - display: none; -} - -.mfp-s-error .mfp-content { - display: none; -} - -button.mfp-close, button.mfp-arrow { - overflow: visible; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; - display: block; - outline: none; - padding: 0; - z-index: 1046; - -webkit-box-shadow: none; - box-shadow: none; -} - -button::-moz-focus-inner { - padding: 0; - border: 0; -} - -.mfp-close { - width: 44px; - height: 44px; - line-height: 44px; - position: absolute; - right: 0; - top: 0; - text-decoration: none; - text-align: center; - opacity: 0.65; - filter: alpha(opacity=65); - padding: 0 0 18px 10px; - color: #FFF; - font-style: normal; - font-size: 28px; - font-family: Arial, Baskerville, monospace; -} - -.mfp-close:hover, .mfp-close:focus { - opacity: 1; - filter: alpha(opacity=100); -} - -.mfp-close:active { - top: 1px; -} - -.mfp-close-btn-in .mfp-close { - color: #333; -} - -.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close { - color: #FFF; - right: -6px; - text-align: right; - padding-right: 6px; - width: 100%; -} - -.mfp-counter { - position: absolute; - top: 0; - right: 0; - color: #CCC; - font-size: 12px; - line-height: 18px; - white-space: nowrap; -} - -.mfp-arrow { - position: absolute; - opacity: 0.65; - filter: alpha(opacity=65); - margin: 0; - top: 50%; - margin-top: -55px; - padding: 0; - width: 90px; - height: 110px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} - -.mfp-arrow:active { - margin-top: -54px; -} - -.mfp-arrow:hover, .mfp-arrow:focus { - opacity: 1; - filter: alpha(opacity=100); -} - -.mfp-arrow:before, .mfp-arrow:after, .mfp-arrow .mfp-b, .mfp-arrow .mfp-a { - content: ''; - display: block; - width: 0; - height: 0; - position: absolute; - left: 0; - top: 0; - margin-top: 35px; - margin-left: 35px; - border: medium inset transparent; -} - -.mfp-arrow:after, .mfp-arrow .mfp-a { - border-top-width: 13px; - border-bottom-width: 13px; - top: 8px; -} - -.mfp-arrow:before, .mfp-arrow .mfp-b { - border-top-width: 21px; - border-bottom-width: 21px; - opacity: 0.7; -} - -.mfp-arrow-left { - left: 0; -} - -.mfp-arrow-left:after, .mfp-arrow-left .mfp-a { - border-right: 17px solid #FFF; - margin-left: 31px; -} - -.mfp-arrow-left:before, .mfp-arrow-left .mfp-b { - margin-left: 25px; - border-right: 27px solid #3F3F3F; -} - -.mfp-arrow-right { - right: 0; -} - -.mfp-arrow-right:after, .mfp-arrow-right .mfp-a { - border-left: 17px solid #FFF; - margin-left: 39px; -} - -.mfp-arrow-right:before, .mfp-arrow-right .mfp-b { - border-left: 27px solid #3F3F3F; -} - -.mfp-iframe-holder { - padding-top: 40px; - padding-bottom: 40px; -} - -.mfp-iframe-holder .mfp-content { - line-height: 0; - width: 100%; - max-width: 900px; -} - -.mfp-iframe-holder .mfp-close { - top: -40px; -} - -.mfp-iframe-scaler { - width: 100%; - height: 0; - overflow: hidden; - padding-top: 56.25%; -} -.mfp-iframe-scaler iframe { - position: absolute; - display: block; - top: 0; - left: 0; - width: 100%; - height: 100%; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - background: #000; -} - -/* Main image in popup */ -img.mfp-img { - width: auto; - max-width: 100%; - height: auto; - display: block; - line-height: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 40px 0 40px; - margin: 0 auto; -} - -/* The shadow behind the image */ -.mfp-figure { - line-height: 0; -} - -.mfp-figure:after { - content: ''; - position: absolute; - left: 0; - top: 40px; - bottom: 40px; - display: block; - right: 0; - width: auto; - height: auto; - z-index: -1; - box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); - background: #444; -} - -.mfp-figure small { - color: #BDBDBD; - display: block; - font-size: 12px; - line-height: 14px; -} - -.mfp-figure figure { - margin: 0; -} - -.mfp-bottom-bar { - margin-top: -36px; - position: absolute; - top: 100%; - left: 0; - width: 100%; - cursor: auto; -} - -.mfp-title { - text-align: left; - line-height: 18px; - color: #F3F3F3; - word-wrap: break-word; - padding-right: 36px; -} - -.mfp-image-holder .mfp-content { - max-width: 100%; -} - -.mfp-gallery .mfp-image-holder .mfp-figure { - cursor: pointer; -} - -@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) { - /** - * Remove all paddings around the image on small screen - */ - .mfp-img-mobile .mfp-image-holder { - padding-left: 0; - padding-right: 0; - } - - .mfp-img-mobile img.mfp-img { - padding: 0; - } - - .mfp-img-mobile .mfp-figure:after { - top: 0; - bottom: 0; - } - - .mfp-img-mobile .mfp-figure small { - display: inline; - margin-left: 5px; - } - - .mfp-img-mobile .mfp-bottom-bar { - background: rgba(0, 0, 0, 0.6); - bottom: 0; - margin: 0; - top: auto; - padding: 3px 5px; - position: fixed; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - - .mfp-img-mobile .mfp-bottom-bar:empty { - padding: 0; - } - - .mfp-img-mobile .mfp-counter { - right: 5px; - top: 3px; - } - - .mfp-img-mobile .mfp-close { - top: 0; - right: 0; - width: 35px; - height: 35px; - line-height: 35px; - background: rgba(0, 0, 0, 0.6); - position: fixed; - text-align: center; - padding: 0; - } -} - -@media all and (max-width: 900px) { - .mfp-arrow { - -webkit-transform: scale(0.75); - transform: scale(0.75); - } - - .mfp-arrow-left { - -webkit-transform-origin: 0; - transform-origin: 0; - } - - .mfp-arrow-right { - -webkit-transform-origin: 100%; - transform-origin: 100%; - } - - .mfp-container { - padding-left: 6px; - padding-right: 6px; - } - -} - -.mfp-ie7 .mfp-img { - padding: 0; -} - -.mfp-ie7 .mfp-bottom-bar { - width: 600px; - left: 50%; - margin-left: -300px; - margin-top: 5px; - padding-bottom: 5px; -} - -.mfp-ie7 .mfp-container { - padding: 0; -} - -.mfp-ie7 .mfp-content { - padding-top: 44px; -} - -.mfp-ie7 .mfp-close { - top: 0; - right: 0; - padding-top: 0; -} \ No newline at end of file diff --git a/assets/css/orange.css b/assets/css/orange.css deleted file mode 100644 index ee7d384..0000000 --- a/assets/css/orange.css +++ /dev/null @@ -1,200 +0,0 @@ -/* Version: 1.3 */ - -/* TABLE OF CONTENTS - 1. Template Orange -*/ - -/* 1. Template Orange */ -.container .line { - background: #f26b38; -} - -a:hover { - color: #f26b38; -} - -a.btn.fill, -.btn.fill { - background: #f26b38; - border-color: #f26b38; -} - -a.btn:hover, -.btn:hover { - background: #f26b38; - border-color: #f26b38; -} - -.preloader .load { - color: #f26b38; -} - -.preloader .typed-load, -.preloader .typed-cursor { - color: #f26b38; -} - -input:focus, -textarea:focus, -button:focus { - border-bottom-color: #f26b38; -} - -button:hover { - border-bottom-color: #f26b38; -} - -@media (min-width: 580px) { - - .glitch-effect-white:before, - .glitch-effect-white:after { - background: #f26b38; - } - - .glitch-effect:after, - .glitch-effect-white:after { - text-shadow: -1px 0 #f26b38; - } - - .glitch-effect:before, - .glitch-effect-white:before { - text-shadow: 2px 0 #f26b38; - } - -} - -header .head-top .menu-btn:hover:before, -header .head-top .menu-btn:hover:after, -header .head-top .menu-btn:hover span { - background: #f26b38; -} - -header .head-top .top-menu ul li.active a { - color: #f26b38; -} - -header .head-top .top-menu ul li.active .btn { - background: #f26b38; - border-color: #f26b38; -} - -.section.started .mouse_btn { - color: #f26b38; - cursor: none; -} - -.info-list ul li strong { - color: #f26b38; -} - -.resume-items .resume-item:before { - background: #f26b38; -} - -.resume-items .resume-item .date { - color: #f26b38; - border-color: #f26b38; -} - -.resume-items .resume-item .date:before { - background: #f26b38; -} - -.skills ul li .progress .percentage { - background: #f26b38; -} - -.service-items .service-item .icon { - color: #f26b38; -} - -.section.works .filters label.glitch-effect { - color: #f26b38; -} - -.box-items .box-item:hover .desc .name { - color: #f26b38; -} - -.box-items .box-item .image .info .centrize { - background: #f26b38; -} - -.date { - color: #f26b38; - border-color: #f26b38; -} - -footer .soc a:hover .ion { - color: #f26b38; -} - -.skills.dotted ul li .progress .da span { - background: #f26b38 !important; -} - -.skills.list ul li .name:before { - color: #f26b38; -} - -.skills ul li .progress .percentage { - background: #f26b38; -} - -.skills.dotted ul li .progress .da span { - background: #f26b38; -} - -.skills.circles .progress .bar, -.skills.circles .progress.p51 .fill, -.skills.circles .progress.p52 .fill, -.skills.circles .progress.p53 .fill, -.skills.circles .progress.p54 .fill, -.skills.circles .progress.p55 .fill, -.skills.circles .progress.p56 .fill, -.skills.circles .progress.p57 .fill, -.skills.circles .progress.p58 .fill, -.skills.circles .progress.p59 .fill, -.skills.circles .progress.p60 .fill, -.skills.circles .progress.p61 .fill, -.skills.circles .progress.p62 .fill, -.skills.circles .progress.p63 .fill, -.skills.circles .progress.p64 .fill, -.skills.circles .progress.p65 .fill, -.skills.circles .progress.p66 .fill, -.skills.circles .progress.p67 .fill, -.skills.circles .progress.p68 .fill, -.skills.circles .progress.p69 .fill, -.skills.circles .progress.p70 .fill, -.skills.circles .progress.p71 .fill, -.skills.circles .progress.p72 .fill, -.skills.circles .progress.p73 .fill, -.skills.circles .progress.p74 .fill, -.skills.circles .progress.p75 .fill, -.skills.circles .progress.p76 .fill, -.skills.circles .progress.p77 .fill, -.skills.circles .progress.p78 .fill, -.skills.circles .progress.p79 .fill, -.skills.circles .progress.p80 .fill, -.skills.circles .progress.p81 .fill, -.skills.circles .progress.p82 .fill, -.skills.circles .progress.p83 .fill, -.skills.circles .progress.p84 .fill, -.skills.circles .progress.p85 .fill, -.skills.circles .progress.p86 .fill, -.skills.circles .progress.p87 .fill, -.skills.circles .progress.p88 .fill, -.skills.circles .progress.p89 .fill, -.skills.circles .progress.p90 .fill, -.skills.circles .progress.p91 .fill, -.skills.circles .progress.p92 .fill, -.skills.circles .progress.p93 .fill, -.skills.circles .progress.p94 .fill, -.skills.circles .progress.p95 .fill, -.skills.circles .progress.p96 .fill, -.skills.circles .progress.p97 .fill, -.skills.circles .progress.p98 .fill, -.skills.circles .progress.p99 .fill, -.skills.circles .progress.p100 .fill { - border-color: #f26b38; -} \ No newline at end of file diff --git a/assets/fonts/.htaccess b/assets/fonts/.htaccess deleted file mode 100644 index 0fc9d32..0000000 --- a/assets/fonts/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -# Disable directory browsing -Options -Indexes \ No newline at end of file diff --git a/assets/fonts/ionicons790f.eot b/assets/fonts/ionicons790f.eot deleted file mode 100644 index 92a3f20..0000000 Binary files a/assets/fonts/ionicons790f.eot and /dev/null differ diff --git a/assets/fonts/ionicons790f.svg b/assets/fonts/ionicons790f.svg deleted file mode 100644 index 49fc8f3..0000000 --- a/assets/fonts/ionicons790f.svg +++ /dev/null @@ -1,2230 +0,0 @@ - - - - - -Created by FontForge 20120731 at Thu Dec 4 09:51:48 2014 - By Adam Bradley -Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/fonts/ionicons790f.ttf b/assets/fonts/ionicons790f.ttf deleted file mode 100644 index c4e4632..0000000 Binary files a/assets/fonts/ionicons790f.ttf and /dev/null differ diff --git a/assets/fonts/ionicons790f.woff b/assets/fonts/ionicons790f.woff deleted file mode 100644 index 5f3a14e..0000000 Binary files a/assets/fonts/ionicons790f.woff and /dev/null differ diff --git a/assets/icon/android-icon-144x144.png b/assets/icon/android-icon-144x144.png deleted file mode 100644 index f7a6eab..0000000 Binary files a/assets/icon/android-icon-144x144.png and /dev/null differ diff --git a/assets/icon/android-icon-192x192.png b/assets/icon/android-icon-192x192.png deleted file mode 100644 index 8b76479..0000000 Binary files a/assets/icon/android-icon-192x192.png and /dev/null differ diff --git a/assets/icon/android-icon-36x36.png b/assets/icon/android-icon-36x36.png deleted file mode 100644 index a924ab7..0000000 Binary files a/assets/icon/android-icon-36x36.png and /dev/null differ diff --git a/assets/icon/android-icon-48x48.png b/assets/icon/android-icon-48x48.png deleted file mode 100644 index 9150a9c..0000000 Binary files a/assets/icon/android-icon-48x48.png and /dev/null differ diff --git a/assets/icon/android-icon-72x72.png b/assets/icon/android-icon-72x72.png deleted file mode 100644 index 8c4bacd..0000000 Binary files a/assets/icon/android-icon-72x72.png and /dev/null differ diff --git a/assets/icon/android-icon-96x96.png b/assets/icon/android-icon-96x96.png deleted file mode 100644 index 4b478a3..0000000 Binary files a/assets/icon/android-icon-96x96.png and /dev/null differ diff --git a/assets/icon/apple-icon-114x114.png b/assets/icon/apple-icon-114x114.png deleted file mode 100644 index 2615385..0000000 Binary files a/assets/icon/apple-icon-114x114.png and /dev/null differ diff --git a/assets/icon/apple-icon-120x120.png b/assets/icon/apple-icon-120x120.png deleted file mode 100644 index 7cb49b0..0000000 Binary files a/assets/icon/apple-icon-120x120.png and /dev/null differ diff --git a/assets/icon/apple-icon-144x144.png b/assets/icon/apple-icon-144x144.png deleted file mode 100644 index f7a6eab..0000000 Binary files a/assets/icon/apple-icon-144x144.png and /dev/null differ diff --git a/assets/icon/apple-icon-152x152.png b/assets/icon/apple-icon-152x152.png deleted file mode 100644 index dde4283..0000000 Binary files a/assets/icon/apple-icon-152x152.png and /dev/null differ diff --git a/assets/icon/apple-icon-180x180.png b/assets/icon/apple-icon-180x180.png deleted file mode 100644 index 1c38d4c..0000000 Binary files a/assets/icon/apple-icon-180x180.png and /dev/null differ diff --git a/assets/icon/apple-icon-57x57.png b/assets/icon/apple-icon-57x57.png deleted file mode 100644 index 213e733..0000000 Binary files a/assets/icon/apple-icon-57x57.png and /dev/null differ diff --git a/assets/icon/apple-icon-60x60.png b/assets/icon/apple-icon-60x60.png deleted file mode 100644 index 1e44770..0000000 Binary files a/assets/icon/apple-icon-60x60.png and /dev/null differ diff --git a/assets/icon/apple-icon-72x72.png b/assets/icon/apple-icon-72x72.png deleted file mode 100644 index 8c4bacd..0000000 Binary files a/assets/icon/apple-icon-72x72.png and /dev/null differ diff --git a/assets/icon/apple-icon-76x76.png b/assets/icon/apple-icon-76x76.png deleted file mode 100644 index 5a9bd80..0000000 Binary files a/assets/icon/apple-icon-76x76.png and /dev/null differ diff --git a/assets/icon/apple-icon-precomposed.png b/assets/icon/apple-icon-precomposed.png deleted file mode 100644 index 501ee90..0000000 Binary files a/assets/icon/apple-icon-precomposed.png and /dev/null differ diff --git a/assets/icon/apple-icon.png b/assets/icon/apple-icon.png deleted file mode 100644 index 501ee90..0000000 Binary files a/assets/icon/apple-icon.png and /dev/null differ diff --git a/assets/icon/favicon-16x16.png b/assets/icon/favicon-16x16.png deleted file mode 100644 index 7992968..0000000 Binary files a/assets/icon/favicon-16x16.png and /dev/null differ diff --git a/assets/icon/favicon-32x32.png b/assets/icon/favicon-32x32.png deleted file mode 100644 index e028ae8..0000000 Binary files a/assets/icon/favicon-32x32.png and /dev/null differ diff --git a/assets/icon/favicon-96x96.png b/assets/icon/favicon-96x96.png deleted file mode 100644 index 4b478a3..0000000 Binary files a/assets/icon/favicon-96x96.png and /dev/null differ diff --git a/assets/icon/favicon.ico b/assets/icon/favicon.ico deleted file mode 100644 index ce25e08..0000000 Binary files a/assets/icon/favicon.ico and /dev/null differ diff --git a/assets/icon/ms-icon-144x144.png b/assets/icon/ms-icon-144x144.png deleted file mode 100644 index f7a6eab..0000000 Binary files a/assets/icon/ms-icon-144x144.png and /dev/null differ diff --git a/assets/icon/ms-icon-150x150.png b/assets/icon/ms-icon-150x150.png deleted file mode 100644 index 266f3d6..0000000 Binary files a/assets/icon/ms-icon-150x150.png and /dev/null differ diff --git a/assets/icon/ms-icon-310x310.png b/assets/icon/ms-icon-310x310.png deleted file mode 100644 index 3d75316..0000000 Binary files a/assets/icon/ms-icon-310x310.png and /dev/null differ diff --git a/assets/icon/ms-icon-70x70.png b/assets/icon/ms-icon-70x70.png deleted file mode 100644 index e8b35b9..0000000 Binary files a/assets/icon/ms-icon-70x70.png and /dev/null differ diff --git a/assets/img/avatar.png b/assets/img/avatar.png deleted file mode 100644 index 187facd..0000000 Binary files a/assets/img/avatar.png and /dev/null differ diff --git a/assets/img/awards/piagam_penghargaan.jpg b/assets/img/awards/piagam_penghargaan.jpg deleted file mode 100644 index 81fd6ee..0000000 Binary files a/assets/img/awards/piagam_penghargaan.jpg and /dev/null differ diff --git a/assets/img/awards/piagam_penghargaan1.jpg b/assets/img/awards/piagam_penghargaan1.jpg deleted file mode 100644 index 34d4afe..0000000 Binary files a/assets/img/awards/piagam_penghargaan1.jpg and /dev/null differ diff --git a/assets/img/certification/basic_english1.jpg b/assets/img/certification/basic_english1.jpg deleted file mode 100644 index 558b4e7..0000000 Binary files a/assets/img/certification/basic_english1.jpg and /dev/null differ diff --git a/assets/img/certification/css_sololearn.jpg b/assets/img/certification/css_sololearn.jpg deleted file mode 100644 index 81e0b81..0000000 Binary files a/assets/img/certification/css_sololearn.jpg and /dev/null differ diff --git a/assets/img/certification/html_sololearn.jpg b/assets/img/certification/html_sololearn.jpg deleted file mode 100644 index ae95178..0000000 Binary files a/assets/img/certification/html_sololearn.jpg and /dev/null differ diff --git a/assets/img/certification/itessentials_cisco.jpg b/assets/img/certification/itessentials_cisco.jpg deleted file mode 100644 index bdccc27..0000000 Binary files a/assets/img/certification/itessentials_cisco.jpg and /dev/null differ diff --git a/assets/img/certification/js_sololearn.jpg b/assets/img/certification/js_sololearn.jpg deleted file mode 100644 index 59bc362..0000000 Binary files a/assets/img/certification/js_sololearn.jpg and /dev/null differ diff --git a/assets/img/certification/lintasarta2.png b/assets/img/certification/lintasarta2.png deleted file mode 100644 index 7e1aa60..0000000 Binary files a/assets/img/certification/lintasarta2.png and /dev/null differ diff --git a/assets/img/certification/lintasarta3.png b/assets/img/certification/lintasarta3.png deleted file mode 100644 index 31cf8b0..0000000 Binary files a/assets/img/certification/lintasarta3.png and /dev/null differ diff --git a/assets/img/certification/lintasarta4.png b/assets/img/certification/lintasarta4.png deleted file mode 100644 index 2f36fa5..0000000 Binary files a/assets/img/certification/lintasarta4.png and /dev/null differ diff --git a/assets/img/certification/oracle_certificate_of_recognition.png b/assets/img/certification/oracle_certificate_of_recognition.png deleted file mode 100644 index e8b0054..0000000 Binary files a/assets/img/certification/oracle_certificate_of_recognition.png and /dev/null differ diff --git a/assets/img/certification/php_sololearn.jpg b/assets/img/certification/php_sololearn.jpg deleted file mode 100644 index 5fb14f9..0000000 Binary files a/assets/img/certification/php_sololearn.jpg and /dev/null differ diff --git a/assets/img/certification/prakerin_blc.jpg b/assets/img/certification/prakerin_blc.jpg deleted file mode 100644 index 6efbdde..0000000 Binary files a/assets/img/certification/prakerin_blc.jpg and /dev/null differ diff --git a/assets/img/certification/prakerin_diskominfo.jpg b/assets/img/certification/prakerin_diskominfo.jpg deleted file mode 100644 index 132ba09..0000000 Binary files a/assets/img/certification/prakerin_diskominfo.jpg and /dev/null differ diff --git a/assets/img/certification/radnet.jpg b/assets/img/certification/radnet.jpg deleted file mode 100644 index 39a573f..0000000 Binary files a/assets/img/certification/radnet.jpg and /dev/null differ diff --git a/assets/img/certification/seo_skillacademy.jpg b/assets/img/certification/seo_skillacademy.jpg deleted file mode 100644 index ddecfdf..0000000 Binary files a/assets/img/certification/seo_skillacademy.jpg and /dev/null differ diff --git a/assets/img/certification/seo_skillacademy1.jpg b/assets/img/certification/seo_skillacademy1.jpg deleted file mode 100644 index 729d581..0000000 Binary files a/assets/img/certification/seo_skillacademy1.jpg and /dev/null differ diff --git a/assets/img/certification/sql_sololearn.jpg b/assets/img/certification/sql_sololearn.jpg deleted file mode 100644 index 042fe85..0000000 Binary files a/assets/img/certification/sql_sololearn.jpg and /dev/null differ diff --git a/assets/img/certification/unmask.jpg b/assets/img/certification/unmask.jpg deleted file mode 100644 index aa312e3..0000000 Binary files a/assets/img/certification/unmask.jpg and /dev/null differ diff --git a/assets/img/portfolio/andromart.png b/assets/img/portfolio/andromart.png deleted file mode 100644 index 0e897a4..0000000 Binary files a/assets/img/portfolio/andromart.png and /dev/null differ diff --git a/assets/img/portfolio/batubeling.png b/assets/img/portfolio/batubeling.png deleted file mode 100644 index f479a8c..0000000 Binary files a/assets/img/portfolio/batubeling.png and /dev/null differ diff --git a/assets/img/portfolio/code.png b/assets/img/portfolio/code.png deleted file mode 100644 index adb9d79..0000000 Binary files a/assets/img/portfolio/code.png and /dev/null differ diff --git a/assets/img/portfolio/corona.png b/assets/img/portfolio/corona.png deleted file mode 100644 index 97200bc..0000000 Binary files a/assets/img/portfolio/corona.png and /dev/null differ diff --git a/assets/img/portfolio/dryaslibrary.png b/assets/img/portfolio/dryaslibrary.png deleted file mode 100644 index 489f10e..0000000 Binary files a/assets/img/portfolio/dryaslibrary.png and /dev/null differ diff --git a/assets/img/portfolio/ksp-sumberrejeki.png b/assets/img/portfolio/ksp-sumberrejeki.png deleted file mode 100644 index 0e4c967..0000000 Binary files a/assets/img/portfolio/ksp-sumberrejeki.png and /dev/null differ diff --git a/assets/img/portfolio/network.png b/assets/img/portfolio/network.png deleted file mode 100644 index 880a497..0000000 Binary files a/assets/img/portfolio/network.png and /dev/null differ diff --git a/assets/img/portfolio/ourenterprise.png b/assets/img/portfolio/ourenterprise.png deleted file mode 100644 index 85b1f06..0000000 Binary files a/assets/img/portfolio/ourenterprise.png and /dev/null differ diff --git a/assets/img/portfolio/sportsskuyy.png b/assets/img/portfolio/sportsskuyy.png deleted file mode 100644 index 5a8f1aa..0000000 Binary files a/assets/img/portfolio/sportsskuyy.png and /dev/null differ diff --git a/assets/img/portfolio/stack-games.png b/assets/img/portfolio/stack-games.png deleted file mode 100644 index d6d1277..0000000 Binary files a/assets/img/portfolio/stack-games.png and /dev/null differ diff --git a/assets/img/portfolio/veyaz.png b/assets/img/portfolio/veyaz.png deleted file mode 100644 index 9a7f517..0000000 Binary files a/assets/img/portfolio/veyaz.png and /dev/null differ diff --git a/assets/img/portfolio/wordpress.png b/assets/img/portfolio/wordpress.png deleted file mode 100644 index 6b5895e..0000000 Binary files a/assets/img/portfolio/wordpress.png and /dev/null differ diff --git a/assets/js/glitche-scripts.js b/assets/js/glitche-scripts.js deleted file mode 100644 index 72d361f..0000000 --- a/assets/js/glitche-scripts.js +++ /dev/null @@ -1,523 +0,0 @@ -// Version: 1.3 -"use strict"; - -/* Check Link */ -if (window.location.hostname === "rdp77.github.io") { - window.location.replace("https://ravidwiputra.web.id"); -} - -/* Google Analytics */ -window.dataLayer = window.dataLayer || []; - -function gtag() { - dataLayer.push(arguments); -} - -gtag("js", new Date()); - -gtag("config", "UA-56428090-2"); - -/* Load Service Worker */ -if ("serviceWorker" in navigator) { - window.addEventListener("load", function () { - navigator.serviceWorker.register("/sw.js", {scope: "/"}).then( - function (registration) { - // Registration was successful - console.log( - "ServiceWorker registration successful with scope: ", - registration.scope - ); - }, - function (err) { - // registration failed :( - console.log("ServiceWorker registration failed: ", err); - } - ); - }); -} - -window.addEventListener("unload", function () { -}); - -/* Initialize */ -document.body.style.overflow = "hidden"; - -function initializeTyped(elementSelector, stringsSelector) { - const element = document.querySelector(elementSelector); - const stringsElement = document.querySelector(stringsSelector); - - if (!element || !stringsElement) { - return; - } - - new Typed(element, { - stringsElement: stringsElement, - loop: true, - typeSpeed: 50, - }); -} - -/* Set full height in blocks */ -const width = window.innerWidth; -const height = window.innerHeight; -document.querySelector(".section.started").style.height = height - 60 + "px"; - -/* Typed preload text */ -initializeTyped(".typed-load", ".typing-load"); - -/* Preloader */ -const preloaderInner = document.querySelector(".preloader .pre-inner"); -const cursorElement = document.querySelector(".cursor"); -cursorElement.style.display = "none"; - -setTimeout(function () { - fadeOut(preloaderInner, 2000, function () { - /* Preload hide */ - let preloader = document.querySelector(".preloader"); - preloader.style.display = "none"; - document.body.classList.add("loaded"); - document.body.style.overflow = "visible"; - cursorElement.style.display = "unset"; - - /* Typed subtitle */ - initializeTyped(".typed-subtitle", ".typing-subtitle"); - - /* Typed breadcrumbs */ - initializeTyped(".typed-bread", ".typing-bread"); - - /* One-Page Nav */ - let urlHash = window.location.hash; - let sectionElem = document.querySelector(urlHash); - if (urlHash.startsWith("#section-") && sectionElem) { - smoothScrollTo(sectionElem.offsetTop - 70, 400); - } - }); -}, 2000); - -function fadeOut(element, duration, callback) { - let opacity = 1; - let startTime = null; - - function fade(currentTime) { - if (!startTime) startTime = currentTime; - const elapsedTime = currentTime - startTime; - opacity = 1 - (elapsedTime / duration); - element.style.opacity = opacity; - - if (opacity <= 0) { - callback(); - } else { - requestAnimationFrame(fade); - } - } - - requestAnimationFrame(fade); -} - -function smoothScrollTo(targetPosition, duration) { - const startPosition = window.scrollY; - const distance = targetPosition - startPosition; - let startTime = null; - - function scrollTo(currentTime) { - if (!startTime) startTime = currentTime; - const elapsedTime = currentTime - startTime; - const progress = Math.min(elapsedTime / duration, 1); - const newPosition = startPosition + (distance * progress); - window.scrollTo(0, newPosition); - - if (progress < 1) { - requestAnimationFrame(scrollTo); - } - } - - requestAnimationFrame(scrollTo); -} - -/*Fade-out animation between load pages*/ -document.addEventListener("click", function (event) { - const target = event.target; - - // Check if the click is on the top-menu or typed-bread div - if (target.matches("header .top-menu div, .typed-bread div")) { - const link = target.getAttribute("href"); - - if (link.indexOf("#section-") === 0) { - if (!document.body.classList.contains("home")) { - location.href = "/" + link; - } - - const sectionOffset = document.querySelector(link).offsetTop - 110; - window.scrollTo({ - top: sectionOffset, - behavior: "smooth", - }); - - const headerElement = document.querySelector("header"); - if (headerElement.classList.contains("active")) { - document.querySelector(".menu-btn").click(); - } - } else { - document.body.classList.remove("loaded"); - setTimeout(function () { - location.href = "" + link; - }, 500); - } - - event.preventDefault(); - } -}); - - -/*Menu mobile*/ -const header = document.querySelector("header"); -const menuBtn = header.querySelector(".menu-btn"); -const body = document.body; - -menuBtn.addEventListener("click", function () { - header.classList.toggle("active"); - body.classList.toggle("loaded"); - return false; -}); - -/* Hide mouse button on scroll */ -$(window).scroll(function () { - if ($(this).scrollTop() >= 1 ) { - $(".mouse_btn").fadeOut(); - } else { - $(".mouse_btn").fadeIn(); - } -}); - -/* On click mouse button, page scroll down */ -$(".section").on("click", ".mouse_btn", function () { - $("body,html").animate( - { - scrollTop: height - 150, - }, - 800 - ); -}); - -$("body").on( - { - mouseenter: function () { - $(this).addClass("glitch-effect-white"); - }, - mouseleave: function () { - $(this).removeClass("glitch-effect-white"); - $(".top-menu ul li.active a.btn").addClass("glitch-effect-white"); - }, - }, - "a.btn, .btn" -); - -/*Lazy image*/ -document.addEventListener("DOMContentLoaded", function() { - const lazyElements = document.querySelectorAll(".lazy"); - lazyElements.forEach(function(element) { - const observer = new IntersectionObserver(function(entries) { - entries.forEach(function(entry) { - if (entry.isIntersecting) { - entry.target.classList.add("fade-in"); - observer.unobserve(entry.target); - } - }); - }, { threshold: 0 }); - - observer.observe(element); - }); -}); - -/* Initialize masonry items */ -var $container_clients = $(".section.clients .box-items"); -$container_clients.imagesLoaded(function () { - $container_clients.isotope({ - itemSelector: ".box-item", - }); -}); - -/* Initialize masonry items */ -var $container_blog = $(".section.blog .box-items"); -$container_blog.imagesLoaded(function () { - $container_blog.isotope({ - itemSelector: ".box-item", - }); -}); - -/* - Initialize portfolio items - */ -var $container = $(".section.works .box-items"); -$container.imagesLoaded(function () { - $container.isotope({ - itemSelector: ".box-item", - }); -}); - -/* - Filter items on button click - */ -$(".filters").on("click", ".btn-group", function () { - var filterValue = $(this).find("input").val(); - $container.isotope({ - filter: filterValue, - }); - $(".filters .btn-group label").removeClass("glitch-effect"); - $(this).find("label").addClass("glitch-effect"); -}); - -/* - Gallery popup - */ -if ( - /\.(?:jpg|jpeg|gif|png)$/i.test($(".gallery-item:first a").attr("href")) -) { - $(".gallery-item a").magnificPopup({ - gallery: { - enabled: true, - }, - type: "image", - closeBtnInside: false, - fixedContentPos: true, - mainClass: "mfp-fade", - }); -} - -/* - Media popup - */ -$(".has-popup-media").magnificPopup({ - type: "inline", - overflowY: "auto", - fixedContentPos: true, - closeBtnInside: true, - mainClass: "mfp-fade", -}); - -/* - Image popup - */ -$(".has-popup-image").magnificPopup({ - type: "image", - closeOnContentClick: true, - fixedContentPos: true, - mainClass: "mfp-fade", - image: { - verticalFit: true, - }, -}); - -/* - Video popup - */ -$(".has-popup-video").magnificPopup({ - disableOn: 700, - type: "iframe", - iframe: { - patterns: { - youtube_short: { - index: "youtu.be/", - id: "youtu.be/", - src: "https://www.youtube.com/embed/%id%?autoplay=1", - }, - }, - }, - removalDelay: 160, - preloader: false, - fixedContentPos: false, - mainClass: "mfp-fade", - callbacks: { - markupParse: function (template, values, item) { - template.find("iframe").attr("allow", "autoplay"); - }, - }, -}); - -/* - Music popup - */ -$(".has-popup-music").magnificPopup({ - disableOn: 700, - type: "iframe", - removalDelay: 160, - preloader: false, - fixedContentPos: false, - mainClass: "mfp-fade", -}); - -/* - Gallery popup - */ -$(".has-popup-gallery").on("click", function () { - var gallery = $(this).attr("href"); - - $(gallery) - .magnificPopup({ - delegate: "a", - type: "image", - closeOnContentClick: false, - mainClass: "mfp-fade", - removalDelay: 160, - fixedContentPos: false, - gallery: { - enabled: true, - }, - }) - .magnificPopup("open"); - - return false; -}); - -/* - Custom Cursor - */ - -const cursor = document.querySelector(".cursor"); - -window.addEventListener("mousemove", function(e) { - cursor.style.top = e.clientY - cursor.offsetHeight / 2 + "px"; - cursor.style.left = e.clientX - cursor.offsetWidth / 2 + "px"; -}); - -window.addEventListener("mouseleave", function() { - cursor.style.opacity = "0"; -}); - -window.addEventListener("mouseenter", function() { - cursor.style.opacity = "1"; -}); - -const linkElements = document.querySelectorAll(".link"); - -linkElements.forEach(function(link) { - link.addEventListener("mouseenter", function() { - cursor.style.transform = "scale(3.2)"; - }); - - link.addEventListener("mouseleave", function() { - cursor.style.transform = "scale(1)"; - }); -}); - -window.addEventListener("mousedown", function() { - cursor.style.transform = "scale(.2)"; -}); - -window.addEventListener("mouseup", function() { - cursor.style.transform = "scale(1)"; -}); - -/* Resize function */ -window.addEventListener("resize", function() { - let sectionStarted = document.querySelector(".section.started"); - if (sectionStarted) { - sectionStarted.style.height = height - 60 + "px"; - } - - /* Dotted Skills Line On Resize Window */ - let skillsDotted = document.querySelectorAll(".skills-list.dotted .progress"); - if (skillsDotted.length) { - skillsDotted.forEach(function(progress) { - let skillsDottedWidth = progress.offsetWidth; - let daElement = progress.querySelector(".percentage .da"); - if (daElement) { - daElement.style.width = skillsDottedWidth + 1 + "px"; - } - }); - } -}); - -if (width < 840) { - let sectionStarted = document.querySelector(".section.started"); - if (sectionStarted) { - sectionStarted.style.height = height - 30 + "px"; - } - - window.addEventListener("mouseenter", function() { - cursor.style.opacity = "0"; - cursor.style.display = "none"; - }); -} else { - window.addEventListener("mouseenter", function() { - cursor.style.opacity = "1"; - cursor.style.display = "unset"; - }); -} - - -/* One Page Menu Nav */ -if ($(".section").length && $(".top-menu li a").length) { - $(window).on("scroll", function () { - var scrollPos = $(window).scrollTop(); - $(".top-menu ul li a").each(function () { - if ($(this).attr("href").indexOf("#section-") == 0) { - var currLink = $(this); - var refElement = $(currLink.attr("href")); - if (refElement.length) { - if (refElement.offset().top <= scrollPos + 120) { - $(".top-menu ul li").removeClass("active"); - currLink.closest("li").addClass("active"); - } - } - if (scrollPos == 0) { - $(".top-menu ul li").removeClass("active"); - } - } - }); - }); -} - -/* Dotted Skills Line */ -function skills() { - let skillsDotted = document.querySelectorAll(".skills.dotted .progress"); - if (skillsDotted.length) { - skillsDotted.forEach(function(progress) { - let skillsDottedWidth = progress.offsetWidth; - - let dgElement = document.createElement("span"); - dgElement.className = "dg"; - for (let i = 0; i < 10; i++) { - dgElement.innerHTML += ""; - } - progress.appendChild(dgElement); - - let percentageElement = progress.querySelector(".percentage"); - let daElement = document.createElement("span"); - daElement.className = "da"; - for (let i = 0; i < 10; i++) { - daElement.innerHTML += ""; - } - percentageElement.appendChild(daElement); - - let daElements = percentageElement.querySelectorAll(".da"); - daElements.forEach(function(da) { - da.style.width = skillsDottedWidth + "px"; - }); - }); - } -} - -setTimeout(skills, 1000); - -/* Circle Skills Line */ -let skillsCircles = document.querySelectorAll(".skills.circles .progress"); -if (skillsCircles.length) { - skillsCircles.forEach(function(progress) { - let sliceElement = document.createElement("div"); - sliceElement.className = "slice"; - sliceElement.innerHTML = '
'; - progress.appendChild(sliceElement); - }); -} - -/* Calculate Age */ -function calculateAge(date) { - let dob = new Date(date); - let monthDiff = Date.now() - dob.getTime(); - let ageDt = new Date(monthDiff); - let year = ageDt.getUTCFullYear(); - return Math.abs(year - 1970); -} - -document.getElementById("myage").textContent = calculateAge("08/26/2000"); \ No newline at end of file diff --git a/assets/js/imagesloaded.pkgd.js b/assets/js/imagesloaded.pkgd.js deleted file mode 100644 index ef23971..0000000 --- a/assets/js/imagesloaded.pkgd.js +++ /dev/null @@ -1,487 +0,0 @@ -/*! - * imagesLoaded PACKAGED v4.1.0 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -/** - * EvEmitter v1.0.1 - * Lil' event emitter - * MIT License - */ - -/* jshint unused: true, undef: true, strict: true */ - -( function( global, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'ev-emitter/ev-emitter',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory(); - } else { - // Browser globals - global.EvEmitter = factory(); - } - -}( this, function() { - - - -function EvEmitter() {} - -var proto = EvEmitter.prototype; - -proto.on = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // set events hash - var events = this._events = this._events || {}; - // set listeners array - var listeners = events[ eventName ] = events[ eventName ] || []; - // only add once - if ( listeners.indexOf( listener ) == -1 ) { - listeners.push( listener ); - } - - return this; -}; - -proto.once = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // add event - this.on( eventName, listener ); - // set once flag - // set onceEvents hash - var onceEvents = this._onceEvents = this._onceEvents || {}; - // set onceListeners array - var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || []; - // set flag - onceListeners[ listener ] = true; - - return this; -}; - -proto.off = function( eventName, listener ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var index = listeners.indexOf( listener ); - if ( index != -1 ) { - listeners.splice( index, 1 ); - } - - return this; -}; - -proto.emitEvent = function( eventName, args ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var i = 0; - var listener = listeners[i]; - args = args || []; - // once stuff - var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; - - while ( listener ) { - var isOnce = onceListeners && onceListeners[ listener ]; - if ( isOnce ) { - // remove listener - // remove before trigger to prevent recursion - this.off( eventName, listener ); - // unset once flag - delete onceListeners[ listener ]; - } - // trigger listener - listener.apply( this, args ); - // get next listener - i += isOnce ? 0 : 1; - listener = listeners[i]; - } - - return this; -}; - -return EvEmitter; - -})); - -/*! - * imagesLoaded v4.1.0 - * JavaScript is all like "You images are done yet or what?" - * MIT License - */ - -( function( window, factory ) { 'use strict'; - // universal module definition - - /*global define: false, module: false, require: false */ - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( [ - 'ev-emitter/ev-emitter' - ], function( EvEmitter ) { - return factory( window, EvEmitter ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('ev-emitter') - ); - } else { - // browser global - window.imagesLoaded = factory( - window, - window.EvEmitter - ); - } - -})( window, - -// -------------------------- factory -------------------------- // - -function factory( window, EvEmitter ) { - - - -var $ = window.jQuery; -var console = window.console; - -// -------------------------- helpers -------------------------- // - -// extend objects -function extend( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -} - -// turn element or nodeList into an array -function makeArray( obj ) { - var ary = []; - if ( Array.isArray( obj ) ) { - // use object if already an array - ary = obj; - } else if ( typeof obj.length == 'number' ) { - // convert nodeList to array - for ( var i=0; i < obj.length; i++ ) { - ary.push( obj[i] ); - } - } else { - // array of single index - ary.push( obj ); - } - return ary; -} - -// -------------------------- imagesLoaded -------------------------- // - -/** - * @param {Array, Element, NodeList, String} elem - * @param {Object or Function} options - if function, use as callback - * @param {Function} onAlways - callback function - */ -function ImagesLoaded( elem, options, onAlways ) { - // coerce ImagesLoaded() without new, to be new ImagesLoaded() - if ( !( this instanceof ImagesLoaded ) ) { - return new ImagesLoaded( elem, options, onAlways ); - } - // use elem as selector string - if ( typeof elem == 'string' ) { - elem = document.querySelectorAll( elem ); - } - - this.elements = makeArray( elem ); - this.options = extend( {}, this.options ); - - if ( typeof options == 'function' ) { - onAlways = options; - } else { - extend( this.options, options ); - } - - if ( onAlways ) { - this.on( 'always', onAlways ); - } - - this.getImages(); - - if ( $ ) { - // add jQuery Deferred object - this.jqDeferred = new $.Deferred(); - } - - // HACK check async to allow time to bind listeners - setTimeout( function() { - this.check(); - }.bind( this )); -} - -ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); - -ImagesLoaded.prototype.options = {}; - -ImagesLoaded.prototype.getImages = function() { - this.images = []; - - // filter & find items if we have an item selector - this.elements.forEach( this.addElementImages, this ); -}; - -/** - * @param {Node} element - */ -ImagesLoaded.prototype.addElementImages = function( elem ) { - // filter siblings - if ( elem.nodeName == 'IMG' ) { - this.addImage( elem ); - } - // get background image on element - if ( this.options.background === true ) { - this.addElementBackgroundImages( elem ); - } - - // find children - // no non-element nodes, #143 - var nodeType = elem.nodeType; - if ( !nodeType || !elementNodeTypes[ nodeType ] ) { - return; - } - var childImgs = elem.querySelectorAll('img'); - // concat childElems to filterFound array - for ( var i=0; i < childImgs.length; i++ ) { - var img = childImgs[i]; - this.addImage( img ); - } - - // get child background images - if ( typeof this.options.background == 'string' ) { - var children = elem.querySelectorAll( this.options.background ); - for ( i=0; i < children.length; i++ ) { - var child = children[i]; - this.addElementBackgroundImages( child ); - } - } -}; - -var elementNodeTypes = { - 1: true, - 9: true, - 11: true -}; - -ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { - var style = getComputedStyle( elem ); - if ( !style ) { - // Firefox returns null if in a hidden iframe https://bugzil.la/548397 - return; - } - // get url inside url("...") - var reURL = /url\((['"])?(.*?)\1\)/gi; - var matches = reURL.exec( style.backgroundImage ); - while ( matches !== null ) { - var url = matches && matches[2]; - if ( url ) { - this.addBackground( url, elem ); - } - matches = reURL.exec( style.backgroundImage ); - } -}; - -/** - * @param {Image} img - */ -ImagesLoaded.prototype.addImage = function( img ) { - var loadingImage = new LoadingImage( img ); - this.images.push( loadingImage ); -}; - -ImagesLoaded.prototype.addBackground = function( url, elem ) { - var background = new Background( url, elem ); - this.images.push( background ); -}; - -ImagesLoaded.prototype.check = function() { - var _this = this; - this.progressedCount = 0; - this.hasAnyBroken = false; - // complete if no images - if ( !this.images.length ) { - this.complete(); - return; - } - - function onProgress( image, elem, message ) { - // HACK - Chrome triggers event before object properties have changed. #83 - setTimeout( function() { - _this.progress( image, elem, message ); - }); - } - - this.images.forEach( function( loadingImage ) { - loadingImage.once( 'progress', onProgress ); - loadingImage.check(); - }); -}; - -ImagesLoaded.prototype.progress = function( image, elem, message ) { - this.progressedCount++; - this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; - // progress event - this.emitEvent( 'progress', [ this, image, elem ] ); - if ( this.jqDeferred && this.jqDeferred.notify ) { - this.jqDeferred.notify( this, image ); - } - // check if completed - if ( this.progressedCount == this.images.length ) { - this.complete(); - } - - if ( this.options.debug && console ) { - console.log( 'progress: ' + message, image, elem ); - } -}; - -ImagesLoaded.prototype.complete = function() { - var eventName = this.hasAnyBroken ? 'fail' : 'done'; - this.isComplete = true; - this.emitEvent( eventName, [ this ] ); - this.emitEvent( 'always', [ this ] ); - if ( this.jqDeferred ) { - var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; - this.jqDeferred[ jqMethod ]( this ); - } -}; - -// -------------------------- -------------------------- // - -function LoadingImage( img ) { - this.img = img; -} - -LoadingImage.prototype = Object.create( EvEmitter.prototype ); - -LoadingImage.prototype.check = function() { - // If complete is true and browser supports natural sizes, - // try to check for image status manually. - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - // report based on naturalWidth - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - return; - } - - // If none of the checks above matched, simulate loading on detached element. - this.proxyImage = new Image(); - this.proxyImage.addEventListener( 'load', this ); - this.proxyImage.addEventListener( 'error', this ); - // bind to image as well for Firefox. #191 - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.proxyImage.src = this.img.src; -}; - -LoadingImage.prototype.getIsImageComplete = function() { - return this.img.complete && this.img.naturalWidth !== undefined; -}; - -LoadingImage.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.img, message ] ); -}; - -// ----- events ----- // - -// trigger specified handler for event type -LoadingImage.prototype.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -LoadingImage.prototype.onload = function() { - this.confirm( true, 'onload' ); - this.unbindEvents(); -}; - -LoadingImage.prototype.onerror = function() { - this.confirm( false, 'onerror' ); - this.unbindEvents(); -}; - -LoadingImage.prototype.unbindEvents = function() { - this.proxyImage.removeEventListener( 'load', this ); - this.proxyImage.removeEventListener( 'error', this ); - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); -}; - -// -------------------------- Background -------------------------- // - -function Background( url, element ) { - this.url = url; - this.element = element; - this.img = new Image(); -} - -// inherit LoadingImage prototype -Background.prototype = Object.create( LoadingImage.prototype ); - -Background.prototype.check = function() { - this.img.addEventListener( 'load', this ); - this.img.addEventListener( 'error', this ); - this.img.src = this.url; - // check if image is already complete - var isComplete = this.getIsImageComplete(); - if ( isComplete ) { - this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); - this.unbindEvents(); - } -}; - -Background.prototype.unbindEvents = function() { - this.img.removeEventListener( 'load', this ); - this.img.removeEventListener( 'error', this ); -}; - -Background.prototype.confirm = function( isLoaded, message ) { - this.isLoaded = isLoaded; - this.emitEvent( 'progress', [ this, this.element, message ] ); -}; - -// -------------------------- jQuery -------------------------- // - -ImagesLoaded.makeJQueryPlugin = function( jQuery ) { - jQuery = jQuery || window.jQuery; - if ( !jQuery ) { - return; - } - // set local variable - $ = jQuery; - // $().imagesLoaded() - $.fn.imagesLoaded = function( options, callback ) { - var instance = new ImagesLoaded( this, options, callback ); - return instance.jqDeferred.promise( $(this) ); - }; -}; -// try making plugin -ImagesLoaded.makeJQueryPlugin(); - -// -------------------------- -------------------------- // - -return ImagesLoaded; - -}); - diff --git a/assets/js/isotope.pkgd.js b/assets/js/isotope.pkgd.js deleted file mode 100644 index fde0071..0000000 --- a/assets/js/isotope.pkgd.js +++ /dev/null @@ -1,3563 +0,0 @@ -/*! - * Isotope PACKAGED v3.0.6 - * - * Licensed GPLv3 for open source use - * or Isotope Commercial License for commercial use - * - * https://isotope.metafizzy.co - * Copyright 2010-2018 Metafizzy - */ - -/** - * Bridget makes jQuery widgets - * v2.0.1 - * MIT license - */ - -/* jshint browser: true, strict: true, undef: true, unused: true */ - -( function( window, factory ) { - // universal module definition - /*jshint strict: false */ /* globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) { - return factory( window, jQuery ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('jquery') - ); - } else { - // browser global - window.jQueryBridget = factory( - window, - window.jQuery - ); - } - -}( window, function factory( window, jQuery ) { -'use strict'; - -// ----- utils ----- // - -var arraySlice = Array.prototype.slice; - -// helper function for logging errors -// $.error breaks jQuery chaining -var console = window.console; -var logError = typeof console == 'undefined' ? function() {} : - function( message ) { - console.error( message ); - }; - -// ----- jQueryBridget ----- // - -function jQueryBridget( namespace, PluginClass, $ ) { - $ = $ || jQuery || window.jQuery; - if ( !$ ) { - return; - } - - // add option method -> $().plugin('option', {...}) - if ( !PluginClass.prototype.option ) { - // option setter - PluginClass.prototype.option = function( opts ) { - // bail out if not an object - if ( !$.isPlainObject( opts ) ){ - return; - } - this.options = $.extend( true, this.options, opts ); - }; - } - - // make jQuery plugin - $.fn[ namespace ] = function( arg0 /*, arg1 */ ) { - if ( typeof arg0 == 'string' ) { - // method call $().plugin( 'methodName', { options } ) - // shift arguments by 1 - var args = arraySlice.call( arguments, 1 ); - return methodCall( this, arg0, args ); - } - // just $().plugin({ options }) - plainCall( this, arg0 ); - return this; - }; - - // $().plugin('methodName') - function methodCall( $elems, methodName, args ) { - var returnValue; - var pluginMethodStr = '$().' + namespace + '("' + methodName + '")'; - - $elems.each( function( i, elem ) { - // get instance - var instance = $.data( elem, namespace ); - if ( !instance ) { - logError( namespace + ' not initialized. Cannot call methods, i.e. ' + - pluginMethodStr ); - return; - } - - var method = instance[ methodName ]; - if ( !method || methodName.charAt(0) == '_' ) { - logError( pluginMethodStr + ' is not a valid method' ); - return; - } - - // apply method, get return value - var value = method.apply( instance, args ); - // set return value if value is returned, use only first value - returnValue = returnValue === undefined ? value : returnValue; - }); - - return returnValue !== undefined ? returnValue : $elems; - } - - function plainCall( $elems, options ) { - $elems.each( function( i, elem ) { - var instance = $.data( elem, namespace ); - if ( instance ) { - // set options & init - instance.option( options ); - instance._init(); - } else { - // initialize new instance - instance = new PluginClass( elem, options ); - $.data( elem, namespace, instance ); - } - }); - } - - updateJQuery( $ ); - -} - -// ----- updateJQuery ----- // - -// set $.bridget for v1 backwards compatibility -function updateJQuery( $ ) { - if ( !$ || ( $ && $.bridget ) ) { - return; - } - $.bridget = jQueryBridget; -} - -updateJQuery( jQuery || window.jQuery ); - -// ----- ----- // - -return jQueryBridget; - -})); - -/** - * EvEmitter v1.1.0 - * Lil' event emitter - * MIT License - */ - -/* jshint unused: true, undef: true, strict: true */ - -( function( global, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module, window */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'ev-emitter/ev-emitter',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory(); - } else { - // Browser globals - global.EvEmitter = factory(); - } - -}( typeof window != 'undefined' ? window : this, function() { - - - -function EvEmitter() {} - -var proto = EvEmitter.prototype; - -proto.on = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // set events hash - var events = this._events = this._events || {}; - // set listeners array - var listeners = events[ eventName ] = events[ eventName ] || []; - // only add once - if ( listeners.indexOf( listener ) == -1 ) { - listeners.push( listener ); - } - - return this; -}; - -proto.once = function( eventName, listener ) { - if ( !eventName || !listener ) { - return; - } - // add event - this.on( eventName, listener ); - // set once flag - // set onceEvents hash - var onceEvents = this._onceEvents = this._onceEvents || {}; - // set onceListeners object - var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; - // set flag - onceListeners[ listener ] = true; - - return this; -}; - -proto.off = function( eventName, listener ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - var index = listeners.indexOf( listener ); - if ( index != -1 ) { - listeners.splice( index, 1 ); - } - - return this; -}; - -proto.emitEvent = function( eventName, args ) { - var listeners = this._events && this._events[ eventName ]; - if ( !listeners || !listeners.length ) { - return; - } - // copy over to avoid interference if .off() in listener - listeners = listeners.slice(0); - args = args || []; - // once stuff - var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; - - for ( var i=0; i < listeners.length; i++ ) { - var listener = listeners[i] - var isOnce = onceListeners && onceListeners[ listener ]; - if ( isOnce ) { - // remove listener - // remove before trigger to prevent recursion - this.off( eventName, listener ); - // unset once flag - delete onceListeners[ listener ]; - } - // trigger listener - listener.apply( this, args ); - } - - return this; -}; - -proto.allOff = function() { - delete this._events; - delete this._onceEvents; -}; - -return EvEmitter; - -})); - -/*! - * getSize v2.0.3 - * measure size of elements - * MIT license - */ - -/* jshint browser: true, strict: true, undef: true, unused: true */ -/* globals console: false */ - -( function( window, factory ) { - /* jshint strict: false */ /* globals define, module */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'get-size/get-size',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory(); - } else { - // browser global - window.getSize = factory(); - } - -})( window, function factory() { -'use strict'; - -// -------------------------- helpers -------------------------- // - -// get a number from a string, not a percentage -function getStyleSize( value ) { - var num = parseFloat( value ); - // not a percent like '100%', and a number - var isValid = value.indexOf('%') == -1 && !isNaN( num ); - return isValid && num; -} - -function noop() {} - -var logError = typeof console == 'undefined' ? noop : - function( message ) { - console.error( message ); - }; - -// -------------------------- measurements -------------------------- // - -var measurements = [ - 'paddingLeft', - 'paddingRight', - 'paddingTop', - 'paddingBottom', - 'marginLeft', - 'marginRight', - 'marginTop', - 'marginBottom', - 'borderLeftWidth', - 'borderRightWidth', - 'borderTopWidth', - 'borderBottomWidth' -]; - -var measurementsLength = measurements.length; - -function getZeroSize() { - var size = { - width: 0, - height: 0, - innerWidth: 0, - innerHeight: 0, - outerWidth: 0, - outerHeight: 0 - }; - for ( var i=0; i < measurementsLength; i++ ) { - var measurement = measurements[i]; - size[ measurement ] = 0; - } - return size; -} - -// -------------------------- getStyle -------------------------- // - -/** - * getStyle, get style of element, check for Firefox bug - * https://bugzilla.mozilla.org/show_bug.cgi?id=548397 - */ -function getStyle( elem ) { - var style = getComputedStyle( elem ); - if ( !style ) { - logError( 'Style returned ' + style + - '. Are you running this code in a hidden iframe on Firefox? ' + - 'See https://bit.ly/getsizebug1' ); - } - return style; -} - -// -------------------------- setup -------------------------- // - -var isSetup = false; - -var isBoxSizeOuter; - -/** - * setup - * check isBoxSizerOuter - * do on first getSize() rather than on page load for Firefox bug - */ -function setup() { - // setup once - if ( isSetup ) { - return; - } - isSetup = true; - - // -------------------------- box sizing -------------------------- // - - /** - * Chrome & Safari measure the outer-width on style.width on border-box elems - * IE11 & Firefox<29 measures the inner-width - */ - var div = document.createElement('div'); - div.style.width = '200px'; - div.style.padding = '1px 2px 3px 4px'; - div.style.borderStyle = 'solid'; - div.style.borderWidth = '1px 2px 3px 4px'; - div.style.boxSizing = 'border-box'; - - var body = document.body || document.documentElement; - body.appendChild( div ); - var style = getStyle( div ); - // round value for browser zoom. desandro/masonry#928 - isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200; - getSize.isBoxSizeOuter = isBoxSizeOuter; - - body.removeChild( div ); -} - -// -------------------------- getSize -------------------------- // - -function getSize( elem ) { - setup(); - - // use querySeletor if elem is string - if ( typeof elem == 'string' ) { - elem = document.querySelector( elem ); - } - - // do not proceed on non-objects - if ( !elem || typeof elem != 'object' || !elem.nodeType ) { - return; - } - - var style = getStyle( elem ); - - // if hidden, everything is 0 - if ( style.display == 'none' ) { - return getZeroSize(); - } - - var size = {}; - size.width = elem.offsetWidth; - size.height = elem.offsetHeight; - - var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; - - // get all measurements - for ( var i=0; i < measurementsLength; i++ ) { - var measurement = measurements[i]; - var value = style[ measurement ]; - var num = parseFloat( value ); - // any 'auto', 'medium' value will be 0 - size[ measurement ] = !isNaN( num ) ? num : 0; - } - - var paddingWidth = size.paddingLeft + size.paddingRight; - var paddingHeight = size.paddingTop + size.paddingBottom; - var marginWidth = size.marginLeft + size.marginRight; - var marginHeight = size.marginTop + size.marginBottom; - var borderWidth = size.borderLeftWidth + size.borderRightWidth; - var borderHeight = size.borderTopWidth + size.borderBottomWidth; - - var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; - - // overwrite width and height if we can get it from style - var styleWidth = getStyleSize( style.width ); - if ( styleWidth !== false ) { - size.width = styleWidth + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); - } - - var styleHeight = getStyleSize( style.height ); - if ( styleHeight !== false ) { - size.height = styleHeight + - // add padding and border unless it's already including it - ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); - } - - size.innerWidth = size.width - ( paddingWidth + borderWidth ); - size.innerHeight = size.height - ( paddingHeight + borderHeight ); - - size.outerWidth = size.width + marginWidth; - size.outerHeight = size.height + marginHeight; - - return size; -} - -return getSize; - -}); - -/** - * matchesSelector v2.0.2 - * matchesSelector( element, '.selector' ) - * MIT license - */ - -/*jshint browser: true, strict: true, undef: true, unused: true */ - -( function( window, factory ) { - /*global define: false, module: false */ - 'use strict'; - // universal module definition - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'desandro-matches-selector/matches-selector',factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory(); - } else { - // browser global - window.matchesSelector = factory(); - } - -}( window, function factory() { - 'use strict'; - - var matchesMethod = ( function() { - var ElemProto = window.Element.prototype; - // check for the standard method name first - if ( ElemProto.matches ) { - return 'matches'; - } - // check un-prefixed - if ( ElemProto.matchesSelector ) { - return 'matchesSelector'; - } - // check vendor prefixes - var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; - - for ( var i=0; i < prefixes.length; i++ ) { - var prefix = prefixes[i]; - var method = prefix + 'MatchesSelector'; - if ( ElemProto[ method ] ) { - return method; - } - } - })(); - - return function matchesSelector( elem, selector ) { - return elem[ matchesMethod ]( selector ); - }; - -})); - -/** - * Fizzy UI utils v2.0.7 - * MIT license - */ - -/*jshint browser: true, undef: true, unused: true, strict: true */ - -( function( window, factory ) { - // universal module definition - /*jshint strict: false */ /*globals define, module, require */ - - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'fizzy-ui-utils/utils',[ - 'desandro-matches-selector/matches-selector' - ], function( matchesSelector ) { - return factory( window, matchesSelector ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('desandro-matches-selector') - ); - } else { - // browser global - window.fizzyUIUtils = factory( - window, - window.matchesSelector - ); - } - -}( window, function factory( window, matchesSelector ) { - - - -var utils = {}; - -// ----- extend ----- // - -// extends objects -utils.extend = function( a, b ) { - for ( var prop in b ) { - a[ prop ] = b[ prop ]; - } - return a; -}; - -// ----- modulo ----- // - -utils.modulo = function( num, div ) { - return ( ( num % div ) + div ) % div; -}; - -// ----- makeArray ----- // - -var arraySlice = Array.prototype.slice; - -// turn element or nodeList into an array -utils.makeArray = function( obj ) { - if ( Array.isArray( obj ) ) { - // use object if already an array - return obj; - } - // return empty array if undefined or null. #6 - if ( obj === null || obj === undefined ) { - return []; - } - - var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; - if ( isArrayLike ) { - // convert nodeList to array - return arraySlice.call( obj ); - } - - // array of single index - return [ obj ]; -}; - -// ----- removeFrom ----- // - -utils.removeFrom = function( ary, obj ) { - var index = ary.indexOf( obj ); - if ( index != -1 ) { - ary.splice( index, 1 ); - } -}; - -// ----- getParent ----- // - -utils.getParent = function( elem, selector ) { - while ( elem.parentNode && elem != document.body ) { - elem = elem.parentNode; - if ( matchesSelector( elem, selector ) ) { - return elem; - } - } -}; - -// ----- getQueryElement ----- // - -// use element as selector string -utils.getQueryElement = function( elem ) { - if ( typeof elem == 'string' ) { - return document.querySelector( elem ); - } - return elem; -}; - -// ----- handleEvent ----- // - -// enable .ontype to trigger from .addEventListener( elem, 'type' ) -utils.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -// ----- filterFindElements ----- // - -utils.filterFindElements = function( elems, selector ) { - // make array of elems - elems = utils.makeArray( elems ); - var ffElems = []; - - elems.forEach( function( elem ) { - // check that elem is an actual element - if ( !( elem instanceof HTMLElement ) ) { - return; - } - // add elem if no selector - if ( !selector ) { - ffElems.push( elem ); - return; - } - // filter & find items if we have a selector - // filter - if ( matchesSelector( elem, selector ) ) { - ffElems.push( elem ); - } - // find children - var childElems = elem.querySelectorAll( selector ); - // concat childElems to filterFound array - for ( var i=0; i < childElems.length; i++ ) { - ffElems.push( childElems[i] ); - } - }); - - return ffElems; -}; - -// ----- debounceMethod ----- // - -utils.debounceMethod = function( _class, methodName, threshold ) { - threshold = threshold || 100; - // original method - var method = _class.prototype[ methodName ]; - var timeoutName = methodName + 'Timeout'; - - _class.prototype[ methodName ] = function() { - var timeout = this[ timeoutName ]; - clearTimeout( timeout ); - - var args = arguments; - var _this = this; - this[ timeoutName ] = setTimeout( function() { - method.apply( _this, args ); - delete _this[ timeoutName ]; - }, threshold ); - }; -}; - -// ----- docReady ----- // - -utils.docReady = function( callback ) { - var readyState = document.readyState; - if ( readyState == 'complete' || readyState == 'interactive' ) { - // do async to allow for other scripts to run. metafizzy/flickity#441 - setTimeout( callback ); - } else { - document.addEventListener( 'DOMContentLoaded', callback ); - } -}; - -// ----- htmlInit ----- // - -// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/ -utils.toDashed = function( str ) { - return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { - return $1 + '-' + $2; - }).toLowerCase(); -}; - -var console = window.console; -/** - * allow user to initialize classes via [data-namespace] or .js-namespace class - * htmlInit( Widget, 'widgetName' ) - * options are parsed from data-namespace-options - */ -utils.htmlInit = function( WidgetClass, namespace ) { - utils.docReady( function() { - var dashedNamespace = utils.toDashed( namespace ); - var dataAttr = 'data-' + dashedNamespace; - var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' ); - var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace ); - var elems = utils.makeArray( dataAttrElems ) - .concat( utils.makeArray( jsDashElems ) ); - var dataOptionsAttr = dataAttr + '-options'; - var jQuery = window.jQuery; - - elems.forEach( function( elem ) { - var attr = elem.getAttribute( dataAttr ) || - elem.getAttribute( dataOptionsAttr ); - var options; - try { - options = attr && JSON.parse( attr ); - } catch ( error ) { - // log error, do not initialize - if ( console ) { - console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className + - ': ' + error ); - } - return; - } - // initialize - var instance = new WidgetClass( elem, options ); - // make available via $().data('namespace') - if ( jQuery ) { - jQuery.data( elem, namespace, instance ); - } - }); - - }); -}; - -// ----- ----- // - -return utils; - -})); - -/** - * Outlayer Item - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /* globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'outlayer/item',[ - 'ev-emitter/ev-emitter', - 'get-size/get-size' - ], - factory - ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory( - require('ev-emitter'), - require('get-size') - ); - } else { - // browser global - window.Outlayer = {}; - window.Outlayer.Item = factory( - window.EvEmitter, - window.getSize - ); - } - -}( window, function factory( EvEmitter, getSize ) { -'use strict'; - -// ----- helpers ----- // - -function isEmptyObj( obj ) { - for ( var prop in obj ) { - return false; - } - prop = null; - return true; -} - -// -------------------------- CSS3 support -------------------------- // - - -var docElemStyle = document.documentElement.style; - -var transitionProperty = typeof docElemStyle.transition == 'string' ? - 'transition' : 'WebkitTransition'; -var transformProperty = typeof docElemStyle.transform == 'string' ? - 'transform' : 'WebkitTransform'; - -var transitionEndEvent = { - WebkitTransition: 'webkitTransitionEnd', - transition: 'transitionend' -}[ transitionProperty ]; - -// cache all vendor properties that could have vendor prefix -var vendorProperties = { - transform: transformProperty, - transition: transitionProperty, - transitionDuration: transitionProperty + 'Duration', - transitionProperty: transitionProperty + 'Property', - transitionDelay: transitionProperty + 'Delay' -}; - -// -------------------------- Item -------------------------- // - -function Item( element, layout ) { - if ( !element ) { - return; - } - - this.element = element; - // parent layout class, i.e. Masonry, Isotope, or Packery - this.layout = layout; - this.position = { - x: 0, - y: 0 - }; - - this._create(); -} - -// inherit EvEmitter -var proto = Item.prototype = Object.create( EvEmitter.prototype ); -proto.constructor = Item; - -proto._create = function() { - // transition objects - this._transn = { - ingProperties: {}, - clean: {}, - onEnd: {} - }; - - this.css({ - position: 'absolute' - }); -}; - -// trigger specified handler for event type -proto.handleEvent = function( event ) { - var method = 'on' + event.type; - if ( this[ method ] ) { - this[ method ]( event ); - } -}; - -proto.getSize = function() { - this.size = getSize( this.element ); -}; - -/** - * apply CSS styles to element - * @param {Object} style - */ -proto.css = function( style ) { - var elemStyle = this.element.style; - - for ( var prop in style ) { - // use vendor property if available - var supportedProp = vendorProperties[ prop ] || prop; - elemStyle[ supportedProp ] = style[ prop ]; - } -}; - - // measure position, and sets it -proto.getPosition = function() { - var style = getComputedStyle( this.element ); - var isOriginLeft = this.layout._getOption('originLeft'); - var isOriginTop = this.layout._getOption('originTop'); - var xValue = style[ isOriginLeft ? 'left' : 'right' ]; - var yValue = style[ isOriginTop ? 'top' : 'bottom' ]; - var x = parseFloat( xValue ); - var y = parseFloat( yValue ); - // convert percent to pixels - var layoutSize = this.layout.size; - if ( xValue.indexOf('%') != -1 ) { - x = ( x / 100 ) * layoutSize.width; - } - if ( yValue.indexOf('%') != -1 ) { - y = ( y / 100 ) * layoutSize.height; - } - // clean up 'auto' or other non-integer values - x = isNaN( x ) ? 0 : x; - y = isNaN( y ) ? 0 : y; - // remove padding from measurement - x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight; - y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom; - - this.position.x = x; - this.position.y = y; -}; - -// set settled position, apply padding -proto.layoutPosition = function() { - var layoutSize = this.layout.size; - var style = {}; - var isOriginLeft = this.layout._getOption('originLeft'); - var isOriginTop = this.layout._getOption('originTop'); - - // x - var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight'; - var xProperty = isOriginLeft ? 'left' : 'right'; - var xResetProperty = isOriginLeft ? 'right' : 'left'; - - var x = this.position.x + layoutSize[ xPadding ]; - // set in percentage or pixels - style[ xProperty ] = this.getXValue( x ); - // reset other property - style[ xResetProperty ] = ''; - - // y - var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom'; - var yProperty = isOriginTop ? 'top' : 'bottom'; - var yResetProperty = isOriginTop ? 'bottom' : 'top'; - - var y = this.position.y + layoutSize[ yPadding ]; - // set in percentage or pixels - style[ yProperty ] = this.getYValue( y ); - // reset other property - style[ yResetProperty ] = ''; - - this.css( style ); - this.emitEvent( 'layout', [ this ] ); -}; - -proto.getXValue = function( x ) { - var isHorizontal = this.layout._getOption('horizontal'); - return this.layout.options.percentPosition && !isHorizontal ? - ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px'; -}; - -proto.getYValue = function( y ) { - var isHorizontal = this.layout._getOption('horizontal'); - return this.layout.options.percentPosition && isHorizontal ? - ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px'; -}; - -proto._transitionTo = function( x, y ) { - this.getPosition(); - // get current x & y from top/left - var curX = this.position.x; - var curY = this.position.y; - - var didNotMove = x == this.position.x && y == this.position.y; - - // save end position - this.setPosition( x, y ); - - // if did not move and not transitioning, just go to layout - if ( didNotMove && !this.isTransitioning ) { - this.layoutPosition(); - return; - } - - var transX = x - curX; - var transY = y - curY; - var transitionStyle = {}; - transitionStyle.transform = this.getTranslate( transX, transY ); - - this.transition({ - to: transitionStyle, - onTransitionEnd: { - transform: this.layoutPosition - }, - isCleaning: true - }); -}; - -proto.getTranslate = function( x, y ) { - // flip cooridinates if origin on right or bottom - var isOriginLeft = this.layout._getOption('originLeft'); - var isOriginTop = this.layout._getOption('originTop'); - x = isOriginLeft ? x : -x; - y = isOriginTop ? y : -y; - return 'translate3d(' + x + 'px, ' + y + 'px, 0)'; -}; - -// non transition + transform support -proto.goTo = function( x, y ) { - this.setPosition( x, y ); - this.layoutPosition(); -}; - -proto.moveTo = proto._transitionTo; - -proto.setPosition = function( x, y ) { - this.position.x = parseFloat( x ); - this.position.y = parseFloat( y ); -}; - -// ----- transition ----- // - -/** - * @param {Object} style - CSS - * @param {Function} onTransitionEnd - */ - -// non transition, just trigger callback -proto._nonTransition = function( args ) { - this.css( args.to ); - if ( args.isCleaning ) { - this._removeStyles( args.to ); - } - for ( var prop in args.onTransitionEnd ) { - args.onTransitionEnd[ prop ].call( this ); - } -}; - -/** - * proper transition - * @param {Object} args - arguments - * @param {Object} to - style to transition to - * @param {Object} from - style to start transition from - * @param {Boolean} isCleaning - removes transition styles after transition - * @param {Function} onTransitionEnd - callback - */ -proto.transition = function( args ) { - // redirect to nonTransition if no transition duration - if ( !parseFloat( this.layout.options.transitionDuration ) ) { - this._nonTransition( args ); - return; - } - - var _transition = this._transn; - // keep track of onTransitionEnd callback by css property - for ( var prop in args.onTransitionEnd ) { - _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ]; - } - // keep track of properties that are transitioning - for ( prop in args.to ) { - _transition.ingProperties[ prop ] = true; - // keep track of properties to clean up when transition is done - if ( args.isCleaning ) { - _transition.clean[ prop ] = true; - } - } - - // set from styles - if ( args.from ) { - this.css( args.from ); - // force redraw. http://blog.alexmaccaw.com/css-transitions - var h = this.element.offsetHeight; - // hack for JSHint to hush about unused var - h = null; - } - // enable transition - this.enableTransition( args.to ); - // set styles that are transitioning - this.css( args.to ); - - this.isTransitioning = true; - -}; - -// dash before all cap letters, including first for -// WebkitTransform => -webkit-transform -function toDashedAll( str ) { - return str.replace( /([A-Z])/g, function( $1 ) { - return '-' + $1.toLowerCase(); - }); -} - -var transitionProps = 'opacity,' + toDashedAll( transformProperty ); - -proto.enableTransition = function(/* style */) { - // HACK changing transitionProperty during a transition - // will cause transition to jump - if ( this.isTransitioning ) { - return; - } - - // make `transition: foo, bar, baz` from style object - // HACK un-comment this when enableTransition can work - // while a transition is happening - // var transitionValues = []; - // for ( var prop in style ) { - // // dash-ify camelCased properties like WebkitTransition - // prop = vendorProperties[ prop ] || prop; - // transitionValues.push( toDashedAll( prop ) ); - // } - // munge number to millisecond, to match stagger - var duration = this.layout.options.transitionDuration; - duration = typeof duration == 'number' ? duration + 'ms' : duration; - // enable transition styles - this.css({ - transitionProperty: transitionProps, - transitionDuration: duration, - transitionDelay: this.staggerDelay || 0 - }); - // listen for transition end event - this.element.addEventListener( transitionEndEvent, this, false ); -}; - -// ----- events ----- // - -proto.onwebkitTransitionEnd = function( event ) { - this.ontransitionend( event ); -}; - -proto.onotransitionend = function( event ) { - this.ontransitionend( event ); -}; - -// properties that I munge to make my life easier -var dashedVendorProperties = { - '-webkit-transform': 'transform' -}; - -proto.ontransitionend = function( event ) { - // disregard bubbled events from children - if ( event.target !== this.element ) { - return; - } - var _transition = this._transn; - // get property name of transitioned property, convert to prefix-free - var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName; - - // remove property that has completed transitioning - delete _transition.ingProperties[ propertyName ]; - // check if any properties are still transitioning - if ( isEmptyObj( _transition.ingProperties ) ) { - // all properties have completed transitioning - this.disableTransition(); - } - // clean style - if ( propertyName in _transition.clean ) { - // clean up style - this.element.style[ event.propertyName ] = ''; - delete _transition.clean[ propertyName ]; - } - // trigger onTransitionEnd callback - if ( propertyName in _transition.onEnd ) { - var onTransitionEnd = _transition.onEnd[ propertyName ]; - onTransitionEnd.call( this ); - delete _transition.onEnd[ propertyName ]; - } - - this.emitEvent( 'transitionEnd', [ this ] ); -}; - -proto.disableTransition = function() { - this.removeTransitionStyles(); - this.element.removeEventListener( transitionEndEvent, this, false ); - this.isTransitioning = false; -}; - -/** - * removes style property from element - * @param {Object} style -**/ -proto._removeStyles = function( style ) { - // clean up transition styles - var cleanStyle = {}; - for ( var prop in style ) { - cleanStyle[ prop ] = ''; - } - this.css( cleanStyle ); -}; - -var cleanTransitionStyle = { - transitionProperty: '', - transitionDuration: '', - transitionDelay: '' -}; - -proto.removeTransitionStyles = function() { - // remove transition - this.css( cleanTransitionStyle ); -}; - -// ----- stagger ----- // - -proto.stagger = function( delay ) { - delay = isNaN( delay ) ? 0 : delay; - this.staggerDelay = delay + 'ms'; -}; - -// ----- show/hide/remove ----- // - -// remove element from DOM -proto.removeElem = function() { - this.element.parentNode.removeChild( this.element ); - // remove display: none - this.css({ display: '' }); - this.emitEvent( 'remove', [ this ] ); -}; - -proto.remove = function() { - // just remove element if no transition support or no transition - if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) { - this.removeElem(); - return; - } - - // start transition - this.once( 'transitionEnd', function() { - this.removeElem(); - }); - this.hide(); -}; - -proto.reveal = function() { - delete this.isHidden; - // remove display: none - this.css({ display: '' }); - - var options = this.layout.options; - - var onTransitionEnd = {}; - var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle'); - onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd; - - this.transition({ - from: options.hiddenStyle, - to: options.visibleStyle, - isCleaning: true, - onTransitionEnd: onTransitionEnd - }); -}; - -proto.onRevealTransitionEnd = function() { - // check if still visible - // during transition, item may have been hidden - if ( !this.isHidden ) { - this.emitEvent('reveal'); - } -}; - -/** - * get style property use for hide/reveal transition end - * @param {String} styleProperty - hiddenStyle/visibleStyle - * @returns {String} - */ -proto.getHideRevealTransitionEndProperty = function( styleProperty ) { - var optionStyle = this.layout.options[ styleProperty ]; - // use opacity - if ( optionStyle.opacity ) { - return 'opacity'; - } - // get first property - for ( var prop in optionStyle ) { - return prop; - } -}; - -proto.hide = function() { - // set flag - this.isHidden = true; - // remove display: none - this.css({ display: '' }); - - var options = this.layout.options; - - var onTransitionEnd = {}; - var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle'); - onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd; - - this.transition({ - from: options.visibleStyle, - to: options.hiddenStyle, - // keep hidden stuff hidden - isCleaning: true, - onTransitionEnd: onTransitionEnd - }); -}; - -proto.onHideTransitionEnd = function() { - // check if still hidden - // during transition, item may have been un-hidden - if ( this.isHidden ) { - this.css({ display: 'none' }); - this.emitEvent('hide'); - } -}; - -proto.destroy = function() { - this.css({ - position: '', - left: '', - right: '', - top: '', - bottom: '', - transition: '', - transform: '' - }); -}; - -return Item; - -})); - -/*! - * Outlayer v2.1.1 - * the brains and guts of a layout library - * MIT license - */ - -( function( window, factory ) { - 'use strict'; - // universal module definition - /* jshint strict: false */ /* globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - RequireJS - define( 'outlayer/outlayer',[ - 'ev-emitter/ev-emitter', - 'get-size/get-size', - 'fizzy-ui-utils/utils', - './item' - ], - function( EvEmitter, getSize, utils, Item ) { - return factory( window, EvEmitter, getSize, utils, Item); - } - ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - Browserify, Webpack - module.exports = factory( - window, - require('ev-emitter'), - require('get-size'), - require('fizzy-ui-utils'), - require('./item') - ); - } else { - // browser global - window.Outlayer = factory( - window, - window.EvEmitter, - window.getSize, - window.fizzyUIUtils, - window.Outlayer.Item - ); - } - -}( window, function factory( window, EvEmitter, getSize, utils, Item ) { -'use strict'; - -// ----- vars ----- // - -var console = window.console; -var jQuery = window.jQuery; -var noop = function() {}; - -// -------------------------- Outlayer -------------------------- // - -// globally unique identifiers -var GUID = 0; -// internal store of all Outlayer intances -var instances = {}; - - -/** - * @param {Element, String} element - * @param {Object} options - * @constructor - */ -function Outlayer( element, options ) { - var queryElement = utils.getQueryElement( element ); - if ( !queryElement ) { - if ( console ) { - console.error( 'Bad element for ' + this.constructor.namespace + - ': ' + ( queryElement || element ) ); - } - return; - } - this.element = queryElement; - // add jQuery - if ( jQuery ) { - this.$element = jQuery( this.element ); - } - - // options - this.options = utils.extend( {}, this.constructor.defaults ); - this.option( options ); - - // add id for Outlayer.getFromElement - var id = ++GUID; - this.element.outlayerGUID = id; // expando - instances[ id ] = this; // associate via id - - // kick it off - this._create(); - - var isInitLayout = this._getOption('initLayout'); - if ( isInitLayout ) { - this.layout(); - } -} - -// settings are for internal use only -Outlayer.namespace = 'outlayer'; -Outlayer.Item = Item; - -// default options -Outlayer.defaults = { - containerStyle: { - position: 'relative' - }, - initLayout: true, - originLeft: true, - originTop: true, - resize: true, - resizeContainer: true, - // item options - transitionDuration: '0.4s', - hiddenStyle: { - opacity: 0, - transform: 'scale(0.001)' - }, - visibleStyle: { - opacity: 1, - transform: 'scale(1)' - } -}; - -var proto = Outlayer.prototype; -// inherit EvEmitter -utils.extend( proto, EvEmitter.prototype ); - -/** - * set options - * @param {Object} opts - */ -proto.option = function( opts ) { - utils.extend( this.options, opts ); -}; - -/** - * get backwards compatible option value, check old name - */ -proto._getOption = function( option ) { - var oldOption = this.constructor.compatOptions[ option ]; - return oldOption && this.options[ oldOption ] !== undefined ? - this.options[ oldOption ] : this.options[ option ]; -}; - -Outlayer.compatOptions = { - // currentName: oldName - initLayout: 'isInitLayout', - horizontal: 'isHorizontal', - layoutInstant: 'isLayoutInstant', - originLeft: 'isOriginLeft', - originTop: 'isOriginTop', - resize: 'isResizeBound', - resizeContainer: 'isResizingContainer' -}; - -proto._create = function() { - // get items from children - this.reloadItems(); - // elements that affect layout, but are not laid out - this.stamps = []; - this.stamp( this.options.stamp ); - // set container style - utils.extend( this.element.style, this.options.containerStyle ); - - // bind resize method - var canBindResize = this._getOption('resize'); - if ( canBindResize ) { - this.bindResize(); - } -}; - -// goes through all children again and gets bricks in proper order -proto.reloadItems = function() { - // collection of item elements - this.items = this._itemize( this.element.children ); -}; - - -/** - * turn elements into Outlayer.Items to be used in layout - * @param {Array or NodeList or HTMLElement} elems - * @returns {Array} items - collection of new Outlayer Items - */ -proto._itemize = function( elems ) { - - var itemElems = this._filterFindItemElements( elems ); - var Item = this.constructor.Item; - - // create new Outlayer Items for collection - var items = []; - for ( var i=0; i < itemElems.length; i++ ) { - var elem = itemElems[i]; - var item = new Item( elem, this ); - items.push( item ); - } - - return items; -}; - -/** - * get item elements to be used in layout - * @param {Array or NodeList or HTMLElement} elems - * @returns {Array} items - item elements - */ -proto._filterFindItemElements = function( elems ) { - return utils.filterFindElements( elems, this.options.itemSelector ); -}; - -/** - * getter method for getting item elements - * @returns {Array} elems - collection of item elements - */ -proto.getItemElements = function() { - return this.items.map( function( item ) { - return item.element; - }); -}; - -// ----- init & layout ----- // - -/** - * lays out all items - */ -proto.layout = function() { - this._resetLayout(); - this._manageStamps(); - - // don't animate first layout - var layoutInstant = this._getOption('layoutInstant'); - var isInstant = layoutInstant !== undefined ? - layoutInstant : !this._isLayoutInited; - this.layoutItems( this.items, isInstant ); - - // flag for initalized - this._isLayoutInited = true; -}; - -// _init is alias for layout -proto._init = proto.layout; - -/** - * logic before any new layout - */ -proto._resetLayout = function() { - this.getSize(); -}; - - -proto.getSize = function() { - this.size = getSize( this.element ); -}; - -/** - * get measurement from option, for columnWidth, rowHeight, gutter - * if option is String -> get element from selector string, & get size of element - * if option is Element -> get size of element - * else use option as a number - * - * @param {String} measurement - * @param {String} size - width or height - * @private - */ -proto._getMeasurement = function( measurement, size ) { - var option = this.options[ measurement ]; - var elem; - if ( !option ) { - // default to 0 - this[ measurement ] = 0; - } else { - // use option as an element - if ( typeof option == 'string' ) { - elem = this.element.querySelector( option ); - } else if ( option instanceof HTMLElement ) { - elem = option; - } - // use size of element, if element - this[ measurement ] = elem ? getSize( elem )[ size ] : option; - } -}; - -/** - * layout a collection of item elements - * @api public - */ -proto.layoutItems = function( items, isInstant ) { - items = this._getItemsForLayout( items ); - - this._layoutItems( items, isInstant ); - - this._postLayout(); -}; - -/** - * get the items to be laid out - * you may want to skip over some items - * @param {Array} items - * @returns {Array} items - */ -proto._getItemsForLayout = function( items ) { - return items.filter( function( item ) { - return !item.isIgnored; - }); -}; - -/** - * layout items - * @param {Array} items - * @param {Boolean} isInstant - */ -proto._layoutItems = function( items, isInstant ) { - this._emitCompleteOnItems( 'layout', items ); - - if ( !items || !items.length ) { - // no items, emit event with empty array - return; - } - - var queue = []; - - items.forEach( function( item ) { - // get x/y object from method - var position = this._getItemLayoutPosition( item ); - // enqueue - position.item = item; - position.isInstant = isInstant || item.isLayoutInstant; - queue.push( position ); - }, this ); - - this._processLayoutQueue( queue ); -}; - -/** - * get item layout position - * @param {Outlayer.Item} item - * @returns {Object} x and y position - */ -proto._getItemLayoutPosition = function( /* item */ ) { - return { - x: 0, - y: 0 - }; -}; - -/** - * iterate over array and position each item - * Reason being - separating this logic prevents 'layout invalidation' - * thx @paul_irish - * @param {Array} queue - */ -proto._processLayoutQueue = function( queue ) { - this.updateStagger(); - queue.forEach( function( obj, i ) { - this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i ); - }, this ); -}; - -// set stagger from option in milliseconds number -proto.updateStagger = function() { - var stagger = this.options.stagger; - if ( stagger === null || stagger === undefined ) { - this.stagger = 0; - return; - } - this.stagger = getMilliseconds( stagger ); - return this.stagger; -}; - -/** - * Sets position of item in DOM - * @param {Outlayer.Item} item - * @param {Number} x - horizontal position - * @param {Number} y - vertical position - * @param {Boolean} isInstant - disables transitions - */ -proto._positionItem = function( item, x, y, isInstant, i ) { - if ( isInstant ) { - // if not transition, just set CSS - item.goTo( x, y ); - } else { - item.stagger( i * this.stagger ); - item.moveTo( x, y ); - } -}; - -/** - * Any logic you want to do after each layout, - * i.e. size the container - */ -proto._postLayout = function() { - this.resizeContainer(); -}; - -proto.resizeContainer = function() { - var isResizingContainer = this._getOption('resizeContainer'); - if ( !isResizingContainer ) { - return; - } - var size = this._getContainerSize(); - if ( size ) { - this._setContainerMeasure( size.width, true ); - this._setContainerMeasure( size.height, false ); - } -}; - -/** - * Sets width or height of container if returned - * @returns {Object} size - * @param {Number} width - * @param {Number} height - */ -proto._getContainerSize = noop; - -/** - * @param {Number} measure - size of width or height - * @param {Boolean} isWidth - */ -proto._setContainerMeasure = function( measure, isWidth ) { - if ( measure === undefined ) { - return; - } - - var elemSize = this.size; - // add padding and border width if border box - if ( elemSize.isBorderBox ) { - measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight + - elemSize.borderLeftWidth + elemSize.borderRightWidth : - elemSize.paddingBottom + elemSize.paddingTop + - elemSize.borderTopWidth + elemSize.borderBottomWidth; - } - - measure = Math.max( measure, 0 ); - this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px'; -}; - -/** - * emit eventComplete on a collection of items events - * @param {String} eventName - * @param {Array} items - Outlayer.Items - */ -proto._emitCompleteOnItems = function( eventName, items ) { - var _this = this; - function onComplete() { - _this.dispatchEvent( eventName + 'Complete', null, [ items ] ); - } - - var count = items.length; - if ( !items || !count ) { - onComplete(); - return; - } - - var doneCount = 0; - function tick() { - doneCount++; - if ( doneCount == count ) { - onComplete(); - } - } - - // bind callback - items.forEach( function( item ) { - item.once( eventName, tick ); - }); -}; - -/** - * emits events via EvEmitter and jQuery events - * @param {String} type - name of event - * @param {Event} event - original event - * @param {Array} args - extra arguments - */ -proto.dispatchEvent = function( type, event, args ) { - // add original event to arguments - var emitArgs = event ? [ event ].concat( args ) : args; - this.emitEvent( type, emitArgs ); - - if ( jQuery ) { - // set this.$element - this.$element = this.$element || jQuery( this.element ); - if ( event ) { - // create jQuery event - var $event = jQuery.Event( event ); - $event.type = type; - this.$element.trigger( $event, args ); - } else { - // just trigger with type if no event available - this.$element.trigger( type, args ); - } - } -}; - -// -------------------------- ignore & stamps -------------------------- // - - -/** - * keep item in collection, but do not lay it out - * ignored items do not get skipped in layout - * @param {Element} elem - */ -proto.ignore = function( elem ) { - var item = this.getItem( elem ); - if ( item ) { - item.isIgnored = true; - } -}; - -/** - * return item to layout collection - * @param {Element} elem - */ -proto.unignore = function( elem ) { - var item = this.getItem( elem ); - if ( item ) { - delete item.isIgnored; - } -}; - -/** - * adds elements to stamps - * @param {NodeList, Array, Element, or String} elems - */ -proto.stamp = function( elems ) { - elems = this._find( elems ); - if ( !elems ) { - return; - } - - this.stamps = this.stamps.concat( elems ); - // ignore - elems.forEach( this.ignore, this ); -}; - -/** - * removes elements to stamps - * @param {NodeList, Array, or Element} elems - */ -proto.unstamp = function( elems ) { - elems = this._find( elems ); - if ( !elems ){ - return; - } - - elems.forEach( function( elem ) { - // filter out removed stamp elements - utils.removeFrom( this.stamps, elem ); - this.unignore( elem ); - }, this ); -}; - -/** - * finds child elements - * @param {NodeList, Array, Element, or String} elems - * @returns {Array} elems - */ -proto._find = function( elems ) { - if ( !elems ) { - return; - } - // if string, use argument as selector string - if ( typeof elems == 'string' ) { - elems = this.element.querySelectorAll( elems ); - } - elems = utils.makeArray( elems ); - return elems; -}; - -proto._manageStamps = function() { - if ( !this.stamps || !this.stamps.length ) { - return; - } - - this._getBoundingRect(); - - this.stamps.forEach( this._manageStamp, this ); -}; - -// update boundingLeft / Top -proto._getBoundingRect = function() { - // get bounding rect for container element - var boundingRect = this.element.getBoundingClientRect(); - var size = this.size; - this._boundingRect = { - left: boundingRect.left + size.paddingLeft + size.borderLeftWidth, - top: boundingRect.top + size.paddingTop + size.borderTopWidth, - right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ), - bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth ) - }; -}; - -/** - * @param {Element} stamp -**/ -proto._manageStamp = noop; - -/** - * get x/y position of element relative to container element - * @param {Element} elem - * @returns {Object} offset - has left, top, right, bottom - */ -proto._getElementOffset = function( elem ) { - var boundingRect = elem.getBoundingClientRect(); - var thisRect = this._boundingRect; - var size = getSize( elem ); - var offset = { - left: boundingRect.left - thisRect.left - size.marginLeft, - top: boundingRect.top - thisRect.top - size.marginTop, - right: thisRect.right - boundingRect.right - size.marginRight, - bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom - }; - return offset; -}; - -// -------------------------- resize -------------------------- // - -// enable event handlers for listeners -// i.e. resize -> onresize -proto.handleEvent = utils.handleEvent; - -/** - * Bind layout to window resizing - */ -proto.bindResize = function() { - window.addEventListener( 'resize', this ); - this.isResizeBound = true; -}; - -/** - * Unbind layout to window resizing - */ -proto.unbindResize = function() { - window.removeEventListener( 'resize', this ); - this.isResizeBound = false; -}; - -proto.onresize = function() { - this.resize(); -}; - -utils.debounceMethod( Outlayer, 'onresize', 100 ); - -proto.resize = function() { - // don't trigger if size did not change - // or if resize was unbound. See #9 - if ( !this.isResizeBound || !this.needsResizeLayout() ) { - return; - } - - this.layout(); -}; - -/** - * check if layout is needed post layout - * @returns Boolean - */ -proto.needsResizeLayout = function() { - var size = getSize( this.element ); - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var hasSizes = this.size && size; - return hasSizes && size.innerWidth !== this.size.innerWidth; -}; - -// -------------------------- methods -------------------------- // - -/** - * add items to Outlayer instance - * @param {Array or NodeList or Element} elems - * @returns {Array} items - Outlayer.Items -**/ -proto.addItems = function( elems ) { - var items = this._itemize( elems ); - // add items to collection - if ( items.length ) { - this.items = this.items.concat( items ); - } - return items; -}; - -/** - * Layout newly-appended item elements - * @param {Array or NodeList or Element} elems - */ -proto.appended = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - // layout and reveal just the new items - this.layoutItems( items, true ); - this.reveal( items ); -}; - -/** - * Layout prepended elements - * @param {Array or NodeList or Element} elems - */ -proto.prepended = function( elems ) { - var items = this._itemize( elems ); - if ( !items.length ) { - return; - } - // add items to beginning of collection - var previousItems = this.items.slice(0); - this.items = items.concat( previousItems ); - // start new layout - this._resetLayout(); - this._manageStamps(); - // layout new stuff without transition - this.layoutItems( items, true ); - this.reveal( items ); - // layout previous items - this.layoutItems( previousItems ); -}; - -/** - * reveal a collection of items - * @param {Array of Outlayer.Items} items - */ -proto.reveal = function( items ) { - this._emitCompleteOnItems( 'reveal', items ); - if ( !items || !items.length ) { - return; - } - var stagger = this.updateStagger(); - items.forEach( function( item, i ) { - item.stagger( i * stagger ); - item.reveal(); - }); -}; - -/** - * hide a collection of items - * @param {Array of Outlayer.Items} items - */ -proto.hide = function( items ) { - this._emitCompleteOnItems( 'hide', items ); - if ( !items || !items.length ) { - return; - } - var stagger = this.updateStagger(); - items.forEach( function( item, i ) { - item.stagger( i * stagger ); - item.hide(); - }); -}; - -/** - * reveal item elements - * @param {Array}, {Element}, {NodeList} items - */ -proto.revealItemElements = function( elems ) { - var items = this.getItems( elems ); - this.reveal( items ); -}; - -/** - * hide item elements - * @param {Array}, {Element}, {NodeList} items - */ -proto.hideItemElements = function( elems ) { - var items = this.getItems( elems ); - this.hide( items ); -}; - -/** - * get Outlayer.Item, given an Element - * @param {Element} elem - * @param {Function} callback - * @returns {Outlayer.Item} item - */ -proto.getItem = function( elem ) { - // loop through items to get the one that matches - for ( var i=0; i < this.items.length; i++ ) { - var item = this.items[i]; - if ( item.element == elem ) { - // return item - return item; - } - } -}; - -/** - * get collection of Outlayer.Items, given Elements - * @param {Array} elems - * @returns {Array} items - Outlayer.Items - */ -proto.getItems = function( elems ) { - elems = utils.makeArray( elems ); - var items = []; - elems.forEach( function( elem ) { - var item = this.getItem( elem ); - if ( item ) { - items.push( item ); - } - }, this ); - - return items; -}; - -/** - * remove element(s) from instance and DOM - * @param {Array or NodeList or Element} elems - */ -proto.remove = function( elems ) { - var removeItems = this.getItems( elems ); - - this._emitCompleteOnItems( 'remove', removeItems ); - - // bail if no items to remove - if ( !removeItems || !removeItems.length ) { - return; - } - - removeItems.forEach( function( item ) { - item.remove(); - // remove item from collection - utils.removeFrom( this.items, item ); - }, this ); -}; - -// ----- destroy ----- // - -// remove and disable Outlayer instance -proto.destroy = function() { - // clean up dynamic styles - var style = this.element.style; - style.height = ''; - style.position = ''; - style.width = ''; - // destroy items - this.items.forEach( function( item ) { - item.destroy(); - }); - - this.unbindResize(); - - var id = this.element.outlayerGUID; - delete instances[ id ]; // remove reference to instance by id - delete this.element.outlayerGUID; - // remove data for jQuery - if ( jQuery ) { - jQuery.removeData( this.element, this.constructor.namespace ); - } - -}; - -// -------------------------- data -------------------------- // - -/** - * get Outlayer instance from element - * @param {Element} elem - * @returns {Outlayer} - */ -Outlayer.data = function( elem ) { - elem = utils.getQueryElement( elem ); - var id = elem && elem.outlayerGUID; - return id && instances[ id ]; -}; - - -// -------------------------- create Outlayer class -------------------------- // - -/** - * create a layout class - * @param {String} namespace - */ -Outlayer.create = function( namespace, options ) { - // sub-class Outlayer - var Layout = subclass( Outlayer ); - // apply new options and compatOptions - Layout.defaults = utils.extend( {}, Outlayer.defaults ); - utils.extend( Layout.defaults, options ); - Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions ); - - Layout.namespace = namespace; - - Layout.data = Outlayer.data; - - // sub-class Item - Layout.Item = subclass( Item ); - - // -------------------------- declarative -------------------------- // - - utils.htmlInit( Layout, namespace ); - - // -------------------------- jQuery bridge -------------------------- // - - // make into jQuery plugin - if ( jQuery && jQuery.bridget ) { - jQuery.bridget( namespace, Layout ); - } - - return Layout; -}; - -function subclass( Parent ) { - function SubClass() { - Parent.apply( this, arguments ); - } - - SubClass.prototype = Object.create( Parent.prototype ); - SubClass.prototype.constructor = SubClass; - - return SubClass; -} - -// ----- helpers ----- // - -// how many milliseconds are in each unit -var msUnits = { - ms: 1, - s: 1000 -}; - -// munge time-like parameter into millisecond number -// '0.4s' -> 40 -function getMilliseconds( time ) { - if ( typeof time == 'number' ) { - return time; - } - var matches = time.match( /(^\d*\.?\d*)(\w*)/ ); - var num = matches && matches[1]; - var unit = matches && matches[2]; - if ( !num.length ) { - return 0; - } - num = parseFloat( num ); - var mult = msUnits[ unit ] || 1; - return num * mult; -} - -// ----- fin ----- // - -// back in global -Outlayer.Item = Item; - -return Outlayer; - -})); - -/** - * Isotope Item -**/ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'isotope-layout/js/item',[ - 'outlayer/outlayer' - ], - factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - require('outlayer') - ); - } else { - // browser global - window.Isotope = window.Isotope || {}; - window.Isotope.Item = factory( - window.Outlayer - ); - } - -}( window, function factory( Outlayer ) { -'use strict'; - -// -------------------------- Item -------------------------- // - -// sub-class Outlayer Item -function Item() { - Outlayer.Item.apply( this, arguments ); -} - -var proto = Item.prototype = Object.create( Outlayer.Item.prototype ); - -var _create = proto._create; -proto._create = function() { - // assign id, used for original-order sorting - this.id = this.layout.itemGUID++; - _create.call( this ); - this.sortData = {}; -}; - -proto.updateSortData = function() { - if ( this.isIgnored ) { - return; - } - // default sorters - this.sortData.id = this.id; - // for backward compatibility - this.sortData['original-order'] = this.id; - this.sortData.random = Math.random(); - // go thru getSortData obj and apply the sorters - var getSortData = this.layout.options.getSortData; - var sorters = this.layout._sorters; - for ( var key in getSortData ) { - var sorter = sorters[ key ]; - this.sortData[ key ] = sorter( this.element, this ); - } -}; - -var _destroy = proto.destroy; -proto.destroy = function() { - // call super - _destroy.apply( this, arguments ); - // reset display, #741 - this.css({ - display: '' - }); -}; - -return Item; - -})); - -/** - * Isotope LayoutMode - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'isotope-layout/js/layout-mode',[ - 'get-size/get-size', - 'outlayer/outlayer' - ], - factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - require('get-size'), - require('outlayer') - ); - } else { - // browser global - window.Isotope = window.Isotope || {}; - window.Isotope.LayoutMode = factory( - window.getSize, - window.Outlayer - ); - } - -}( window, function factory( getSize, Outlayer ) { - 'use strict'; - - // layout mode class - function LayoutMode( isotope ) { - this.isotope = isotope; - // link properties - if ( isotope ) { - this.options = isotope.options[ this.namespace ]; - this.element = isotope.element; - this.items = isotope.filteredItems; - this.size = isotope.size; - } - } - - var proto = LayoutMode.prototype; - - /** - * some methods should just defer to default Outlayer method - * and reference the Isotope instance as `this` - **/ - var facadeMethods = [ - '_resetLayout', - '_getItemLayoutPosition', - '_manageStamp', - '_getContainerSize', - '_getElementOffset', - 'needsResizeLayout', - '_getOption' - ]; - - facadeMethods.forEach( function( methodName ) { - proto[ methodName ] = function() { - return Outlayer.prototype[ methodName ].apply( this.isotope, arguments ); - }; - }); - - // ----- ----- // - - // for horizontal layout modes, check vertical size - proto.needsVerticalResizeLayout = function() { - // don't trigger if size did not change - var size = getSize( this.isotope.element ); - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var hasSizes = this.isotope.size && size; - return hasSizes && size.innerHeight != this.isotope.size.innerHeight; - }; - - // ----- measurements ----- // - - proto._getMeasurement = function() { - this.isotope._getMeasurement.apply( this, arguments ); - }; - - proto.getColumnWidth = function() { - this.getSegmentSize( 'column', 'Width' ); - }; - - proto.getRowHeight = function() { - this.getSegmentSize( 'row', 'Height' ); - }; - - /** - * get columnWidth or rowHeight - * segment: 'column' or 'row' - * size 'Width' or 'Height' - **/ - proto.getSegmentSize = function( segment, size ) { - var segmentName = segment + size; - var outerSize = 'outer' + size; - // columnWidth / outerWidth // rowHeight / outerHeight - this._getMeasurement( segmentName, outerSize ); - // got rowHeight or columnWidth, we can chill - if ( this[ segmentName ] ) { - return; - } - // fall back to item of first element - var firstItemSize = this.getFirstItemSize(); - this[ segmentName ] = firstItemSize && firstItemSize[ outerSize ] || - // or size of container - this.isotope.size[ 'inner' + size ]; - }; - - proto.getFirstItemSize = function() { - var firstItem = this.isotope.filteredItems[0]; - return firstItem && firstItem.element && getSize( firstItem.element ); - }; - - // ----- methods that should reference isotope ----- // - - proto.layout = function() { - this.isotope.layout.apply( this.isotope, arguments ); - }; - - proto.getSize = function() { - this.isotope.getSize(); - this.size = this.isotope.size; - }; - - // -------------------------- create -------------------------- // - - LayoutMode.modes = {}; - - LayoutMode.create = function( namespace, options ) { - - function Mode() { - LayoutMode.apply( this, arguments ); - } - - Mode.prototype = Object.create( proto ); - Mode.prototype.constructor = Mode; - - // default options - if ( options ) { - Mode.options = options; - } - - Mode.prototype.namespace = namespace; - // register in Isotope - LayoutMode.modes[ namespace ] = Mode; - - return Mode; - }; - - return LayoutMode; - -})); - -/*! - * Masonry v4.2.1 - * Cascading grid layout library - * https://masonry.desandro.com - * MIT License - * by David DeSandro - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'masonry-layout/masonry',[ - 'outlayer/outlayer', - 'get-size/get-size' - ], - factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - require('outlayer'), - require('get-size') - ); - } else { - // browser global - window.Masonry = factory( - window.Outlayer, - window.getSize - ); - } - -}( window, function factory( Outlayer, getSize ) { - - - -// -------------------------- masonryDefinition -------------------------- // - - // create an Outlayer layout class - var Masonry = Outlayer.create('masonry'); - // isFitWidth -> fitWidth - Masonry.compatOptions.fitWidth = 'isFitWidth'; - - var proto = Masonry.prototype; - - proto._resetLayout = function() { - this.getSize(); - this._getMeasurement( 'columnWidth', 'outerWidth' ); - this._getMeasurement( 'gutter', 'outerWidth' ); - this.measureColumns(); - - // reset column Y - this.colYs = []; - for ( var i=0; i < this.cols; i++ ) { - this.colYs.push( 0 ); - } - - this.maxY = 0; - this.horizontalColIndex = 0; - }; - - proto.measureColumns = function() { - this.getContainerWidth(); - // if columnWidth is 0, default to outerWidth of first item - if ( !this.columnWidth ) { - var firstItem = this.items[0]; - var firstItemElem = firstItem && firstItem.element; - // columnWidth fall back to item of first element - this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth || - // if first elem has no width, default to size of container - this.containerWidth; - } - - var columnWidth = this.columnWidth += this.gutter; - - // calculate columns - var containerWidth = this.containerWidth + this.gutter; - var cols = containerWidth / columnWidth; - // fix rounding errors, typically with gutters - var excess = columnWidth - containerWidth % columnWidth; - // if overshoot is less than a pixel, round up, otherwise floor it - var mathMethod = excess && excess < 1 ? 'round' : 'floor'; - cols = Math[ mathMethod ]( cols ); - this.cols = Math.max( cols, 1 ); - }; - - proto.getContainerWidth = function() { - // container is parent if fit width - var isFitWidth = this._getOption('fitWidth'); - var container = isFitWidth ? this.element.parentNode : this.element; - // check that this.size and size are there - // IE8 triggers resize on body size change, so they might not be - var size = getSize( container ); - this.containerWidth = size && size.innerWidth; - }; - - proto._getItemLayoutPosition = function( item ) { - item.getSize(); - // how many columns does this brick span - var remainder = item.size.outerWidth % this.columnWidth; - var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil'; - // round if off by 1 pixel, otherwise use ceil - var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth ); - colSpan = Math.min( colSpan, this.cols ); - // use horizontal or top column position - var colPosMethod = this.options.horizontalOrder ? - '_getHorizontalColPosition' : '_getTopColPosition'; - var colPosition = this[ colPosMethod ]( colSpan, item ); - // position the brick - var position = { - x: this.columnWidth * colPosition.col, - y: colPosition.y - }; - // apply setHeight to necessary columns - var setHeight = colPosition.y + item.size.outerHeight; - var setMax = colSpan + colPosition.col; - for ( var i = colPosition.col; i < setMax; i++ ) { - this.colYs[i] = setHeight; - } - - return position; - }; - - proto._getTopColPosition = function( colSpan ) { - var colGroup = this._getTopColGroup( colSpan ); - // get the minimum Y value from the columns - var minimumY = Math.min.apply( Math, colGroup ); - - return { - col: colGroup.indexOf( minimumY ), - y: minimumY, - }; - }; - - /** - * @param {Number} colSpan - number of columns the element spans - * @returns {Array} colGroup - */ - proto._getTopColGroup = function( colSpan ) { - if ( colSpan < 2 ) { - // if brick spans only one column, use all the column Ys - return this.colYs; - } - - var colGroup = []; - // how many different places could this brick fit horizontally - var groupCount = this.cols + 1 - colSpan; - // for each group potential horizontal position - for ( var i = 0; i < groupCount; i++ ) { - colGroup[i] = this._getColGroupY( i, colSpan ); - } - return colGroup; - }; - - proto._getColGroupY = function( col, colSpan ) { - if ( colSpan < 2 ) { - return this.colYs[ col ]; - } - // make an array of colY values for that one group - var groupColYs = this.colYs.slice( col, col + colSpan ); - // and get the max value of the array - return Math.max.apply( Math, groupColYs ); - }; - - // get column position based on horizontal index. #873 - proto._getHorizontalColPosition = function( colSpan, item ) { - var col = this.horizontalColIndex % this.cols; - var isOver = colSpan > 1 && col + colSpan > this.cols; - // shift to next row if item can't fit on current row - col = isOver ? 0 : col; - // don't let zero-size items take up space - var hasSize = item.size.outerWidth && item.size.outerHeight; - this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex; - - return { - col: col, - y: this._getColGroupY( col, colSpan ), - }; - }; - - proto._manageStamp = function( stamp ) { - var stampSize = getSize( stamp ); - var offset = this._getElementOffset( stamp ); - // get the columns that this stamp affects - var isOriginLeft = this._getOption('originLeft'); - var firstX = isOriginLeft ? offset.left : offset.right; - var lastX = firstX + stampSize.outerWidth; - var firstCol = Math.floor( firstX / this.columnWidth ); - firstCol = Math.max( 0, firstCol ); - var lastCol = Math.floor( lastX / this.columnWidth ); - // lastCol should not go over if multiple of columnWidth #425 - lastCol -= lastX % this.columnWidth ? 0 : 1; - lastCol = Math.min( this.cols - 1, lastCol ); - // set colYs to bottom of the stamp - - var isOriginTop = this._getOption('originTop'); - var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) + - stampSize.outerHeight; - for ( var i = firstCol; i <= lastCol; i++ ) { - this.colYs[i] = Math.max( stampMaxY, this.colYs[i] ); - } - }; - - proto._getContainerSize = function() { - this.maxY = Math.max.apply( Math, this.colYs ); - var size = { - height: this.maxY - }; - - if ( this._getOption('fitWidth') ) { - size.width = this._getContainerFitWidth(); - } - - return size; - }; - - proto._getContainerFitWidth = function() { - var unusedCols = 0; - // count unused columns - var i = this.cols; - while ( --i ) { - if ( this.colYs[i] !== 0 ) { - break; - } - unusedCols++; - } - // fit container to columns that have been used - return ( this.cols - unusedCols ) * this.columnWidth - this.gutter; - }; - - proto.needsResizeLayout = function() { - var previousWidth = this.containerWidth; - this.getContainerWidth(); - return previousWidth != this.containerWidth; - }; - - return Masonry; - -})); - -/*! - * Masonry layout mode - * sub-classes Masonry - * https://masonry.desandro.com - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'isotope-layout/js/layout-modes/masonry',[ - '../layout-mode', - 'masonry-layout/masonry' - ], - factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - require('../layout-mode'), - require('masonry-layout') - ); - } else { - // browser global - factory( - window.Isotope.LayoutMode, - window.Masonry - ); - } - -}( window, function factory( LayoutMode, Masonry ) { -'use strict'; - -// -------------------------- masonryDefinition -------------------------- // - - // create an Outlayer layout class - var MasonryMode = LayoutMode.create('masonry'); - - var proto = MasonryMode.prototype; - - var keepModeMethods = { - _getElementOffset: true, - layout: true, - _getMeasurement: true - }; - - // inherit Masonry prototype - for ( var method in Masonry.prototype ) { - // do not inherit mode methods - if ( !keepModeMethods[ method ] ) { - proto[ method ] = Masonry.prototype[ method ]; - } - } - - var measureColumns = proto.measureColumns; - proto.measureColumns = function() { - // set items, used if measuring first item - this.items = this.isotope.filteredItems; - measureColumns.call( this ); - }; - - // point to mode options for fitWidth - var _getOption = proto._getOption; - proto._getOption = function( option ) { - if ( option == 'fitWidth' ) { - return this.options.isFitWidth !== undefined ? - this.options.isFitWidth : this.options.fitWidth; - } - return _getOption.apply( this.isotope, arguments ); - }; - - return MasonryMode; - -})); - -/** - * fitRows layout mode - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'isotope-layout/js/layout-modes/fit-rows',[ - '../layout-mode' - ], - factory ); - } else if ( typeof exports == 'object' ) { - // CommonJS - module.exports = factory( - require('../layout-mode') - ); - } else { - // browser global - factory( - window.Isotope.LayoutMode - ); - } - -}( window, function factory( LayoutMode ) { -'use strict'; - -var FitRows = LayoutMode.create('fitRows'); - -var proto = FitRows.prototype; - -proto._resetLayout = function() { - this.x = 0; - this.y = 0; - this.maxY = 0; - this._getMeasurement( 'gutter', 'outerWidth' ); -}; - -proto._getItemLayoutPosition = function( item ) { - item.getSize(); - - var itemWidth = item.size.outerWidth + this.gutter; - // if this element cannot fit in the current row - var containerWidth = this.isotope.size.innerWidth + this.gutter; - if ( this.x !== 0 && itemWidth + this.x > containerWidth ) { - this.x = 0; - this.y = this.maxY; - } - - var position = { - x: this.x, - y: this.y - }; - - this.maxY = Math.max( this.maxY, this.y + item.size.outerHeight ); - this.x += itemWidth; - - return position; -}; - -proto._getContainerSize = function() { - return { height: this.maxY }; -}; - -return FitRows; - -})); - -/** - * vertical layout mode - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( 'isotope-layout/js/layout-modes/vertical',[ - '../layout-mode' - ], - factory ); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - require('../layout-mode') - ); - } else { - // browser global - factory( - window.Isotope.LayoutMode - ); - } - -}( window, function factory( LayoutMode ) { -'use strict'; - -var Vertical = LayoutMode.create( 'vertical', { - horizontalAlignment: 0 -}); - -var proto = Vertical.prototype; - -proto._resetLayout = function() { - this.y = 0; -}; - -proto._getItemLayoutPosition = function( item ) { - item.getSize(); - var x = ( this.isotope.size.innerWidth - item.size.outerWidth ) * - this.options.horizontalAlignment; - var y = this.y; - this.y += item.size.outerHeight; - return { x: x, y: y }; -}; - -proto._getContainerSize = function() { - return { height: this.y }; -}; - -return Vertical; - -})); - -/*! - * Isotope v3.0.6 - * - * Licensed GPLv3 for open source use - * or Isotope Commercial License for commercial use - * - * https://isotope.metafizzy.co - * Copyright 2010-2018 Metafizzy - */ - -( function( window, factory ) { - // universal module definition - /* jshint strict: false */ /*globals define, module, require */ - if ( typeof define == 'function' && define.amd ) { - // AMD - define( [ - 'outlayer/outlayer', - 'get-size/get-size', - 'desandro-matches-selector/matches-selector', - 'fizzy-ui-utils/utils', - 'isotope-layout/js/item', - 'isotope-layout/js/layout-mode', - // include default layout modes - 'isotope-layout/js/layout-modes/masonry', - 'isotope-layout/js/layout-modes/fit-rows', - 'isotope-layout/js/layout-modes/vertical' - ], - function( Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ) { - return factory( window, Outlayer, getSize, matchesSelector, utils, Item, LayoutMode ); - }); - } else if ( typeof module == 'object' && module.exports ) { - // CommonJS - module.exports = factory( - window, - require('outlayer'), - require('get-size'), - require('desandro-matches-selector'), - require('fizzy-ui-utils'), - require('isotope-layout/js/item'), - require('isotope-layout/js/layout-mode'), - // include default layout modes - require('isotope-layout/js/layout-modes/masonry'), - require('isotope-layout/js/layout-modes/fit-rows'), - require('isotope-layout/js/layout-modes/vertical') - ); - } else { - // browser global - window.Isotope = factory( - window, - window.Outlayer, - window.getSize, - window.matchesSelector, - window.fizzyUIUtils, - window.Isotope.Item, - window.Isotope.LayoutMode - ); - } - -}( window, function factory( window, Outlayer, getSize, matchesSelector, utils, - Item, LayoutMode ) { - - - -// -------------------------- vars -------------------------- // - -var jQuery = window.jQuery; - -// -------------------------- helpers -------------------------- // - -var trim = String.prototype.trim ? - function( str ) { - return str.trim(); - } : - function( str ) { - return str.replace( /^\s+|\s+$/g, '' ); - }; - -// -------------------------- isotopeDefinition -------------------------- // - - // create an Outlayer layout class - var Isotope = Outlayer.create( 'isotope', { - layoutMode: 'masonry', - isJQueryFiltering: true, - sortAscending: true - }); - - Isotope.Item = Item; - Isotope.LayoutMode = LayoutMode; - - var proto = Isotope.prototype; - - proto._create = function() { - this.itemGUID = 0; - // functions that sort items - this._sorters = {}; - this._getSorters(); - // call super - Outlayer.prototype._create.call( this ); - - // create layout modes - this.modes = {}; - // start filteredItems with all items - this.filteredItems = this.items; - // keep of track of sortBys - this.sortHistory = [ 'original-order' ]; - // create from registered layout modes - for ( var name in LayoutMode.modes ) { - this._initLayoutMode( name ); - } - }; - - proto.reloadItems = function() { - // reset item ID counter - this.itemGUID = 0; - // call super - Outlayer.prototype.reloadItems.call( this ); - }; - - proto._itemize = function() { - var items = Outlayer.prototype._itemize.apply( this, arguments ); - // assign ID for original-order - for ( var i=0; i < items.length; i++ ) { - var item = items[i]; - item.id = this.itemGUID++; - } - this._updateItemsSortData( items ); - return items; - }; - - - // -------------------------- layout -------------------------- // - - proto._initLayoutMode = function( name ) { - var Mode = LayoutMode.modes[ name ]; - // set mode options - // HACK extend initial options, back-fill in default options - var initialOpts = this.options[ name ] || {}; - this.options[ name ] = Mode.options ? - utils.extend( Mode.options, initialOpts ) : initialOpts; - // init layout mode instance - this.modes[ name ] = new Mode( this ); - }; - - - proto.layout = function() { - // if first time doing layout, do all magic - if ( !this._isLayoutInited && this._getOption('initLayout') ) { - this.arrange(); - return; - } - this._layout(); - }; - - // private method to be used in layout() & magic() - proto._layout = function() { - // don't animate first layout - var isInstant = this._getIsInstant(); - // layout flow - this._resetLayout(); - this._manageStamps(); - this.layoutItems( this.filteredItems, isInstant ); - - // flag for initalized - this._isLayoutInited = true; - }; - - // filter + sort + layout - proto.arrange = function( opts ) { - // set any options pass - this.option( opts ); - this._getIsInstant(); - // filter, sort, and layout - - // filter - var filtered = this._filter( this.items ); - this.filteredItems = filtered.matches; - - this._bindArrangeComplete(); - - if ( this._isInstant ) { - this._noTransition( this._hideReveal, [ filtered ] ); - } else { - this._hideReveal( filtered ); - } - - this._sort(); - this._layout(); - }; - // alias to _init for main plugin method - proto._init = proto.arrange; - - proto._hideReveal = function( filtered ) { - this.reveal( filtered.needReveal ); - this.hide( filtered.needHide ); - }; - - // HACK - // Don't animate/transition first layout - // Or don't animate/transition other layouts - proto._getIsInstant = function() { - var isLayoutInstant = this._getOption('layoutInstant'); - var isInstant = isLayoutInstant !== undefined ? isLayoutInstant : - !this._isLayoutInited; - this._isInstant = isInstant; - return isInstant; - }; - - // listen for layoutComplete, hideComplete and revealComplete - // to trigger arrangeComplete - proto._bindArrangeComplete = function() { - // listen for 3 events to trigger arrangeComplete - var isLayoutComplete, isHideComplete, isRevealComplete; - var _this = this; - function arrangeParallelCallback() { - if ( isLayoutComplete && isHideComplete && isRevealComplete ) { - _this.dispatchEvent( 'arrangeComplete', null, [ _this.filteredItems ] ); - } - } - this.once( 'layoutComplete', function() { - isLayoutComplete = true; - arrangeParallelCallback(); - }); - this.once( 'hideComplete', function() { - isHideComplete = true; - arrangeParallelCallback(); - }); - this.once( 'revealComplete', function() { - isRevealComplete = true; - arrangeParallelCallback(); - }); - }; - - // -------------------------- filter -------------------------- // - - proto._filter = function( items ) { - var filter = this.options.filter; - filter = filter || '*'; - var matches = []; - var hiddenMatched = []; - var visibleUnmatched = []; - - var test = this._getFilterTest( filter ); - - // test each item - for ( var i=0; i < items.length; i++ ) { - var item = items[i]; - if ( item.isIgnored ) { - continue; - } - // add item to either matched or unmatched group - var isMatched = test( item ); - // item.isFilterMatched = isMatched; - // add to matches if its a match - if ( isMatched ) { - matches.push( item ); - } - // add to additional group if item needs to be hidden or revealed - if ( isMatched && item.isHidden ) { - hiddenMatched.push( item ); - } else if ( !isMatched && !item.isHidden ) { - visibleUnmatched.push( item ); - } - } - - // return collections of items to be manipulated - return { - matches: matches, - needReveal: hiddenMatched, - needHide: visibleUnmatched - }; - }; - - // get a jQuery, function, or a matchesSelector test given the filter - proto._getFilterTest = function( filter ) { - if ( jQuery && this.options.isJQueryFiltering ) { - // use jQuery - return function( item ) { - return jQuery( item.element ).is( filter ); - }; - } - if ( typeof filter == 'function' ) { - // use filter as function - return function( item ) { - return filter( item.element ); - }; - } - // default, use filter as selector string - return function( item ) { - return matchesSelector( item.element, filter ); - }; - }; - - // -------------------------- sorting -------------------------- // - - /** - * @params {Array} elems - * @public - */ - proto.updateSortData = function( elems ) { - // get items - var items; - if ( elems ) { - elems = utils.makeArray( elems ); - items = this.getItems( elems ); - } else { - // update all items if no elems provided - items = this.items; - } - - this._getSorters(); - this._updateItemsSortData( items ); - }; - - proto._getSorters = function() { - var getSortData = this.options.getSortData; - for ( var key in getSortData ) { - var sorter = getSortData[ key ]; - this._sorters[ key ] = mungeSorter( sorter ); - } - }; - - /** - * @params {Array} items - of Isotope.Items - * @private - */ - proto._updateItemsSortData = function( items ) { - // do not update if no items - var len = items && items.length; - - for ( var i=0; len && i < len; i++ ) { - var item = items[i]; - item.updateSortData(); - } - }; - - // ----- munge sorter ----- // - - // encapsulate this, as we just need mungeSorter - // other functions in here are just for munging - var mungeSorter = ( function() { - // add a magic layer to sorters for convienent shorthands - // `.foo-bar` will use the text of .foo-bar querySelector - // `[foo-bar]` will use attribute - // you can also add parser - // `.foo-bar parseInt` will parse that as a number - function mungeSorter( sorter ) { - // if not a string, return function or whatever it is - if ( typeof sorter != 'string' ) { - return sorter; - } - // parse the sorter string - var args = trim( sorter ).split(' '); - var query = args[0]; - // check if query looks like [an-attribute] - var attrMatch = query.match( /^\[(.+)\]$/ ); - var attr = attrMatch && attrMatch[1]; - var getValue = getValueGetter( attr, query ); - // use second argument as a parser - var parser = Isotope.sortDataParsers[ args[1] ]; - // parse the value, if there was a parser - sorter = parser ? function( elem ) { - return elem && parser( getValue( elem ) ); - } : - // otherwise just return value - function( elem ) { - return elem && getValue( elem ); - }; - - return sorter; - } - - // get an attribute getter, or get text of the querySelector - function getValueGetter( attr, query ) { - // if query looks like [foo-bar], get attribute - if ( attr ) { - return function getAttribute( elem ) { - return elem.getAttribute( attr ); - }; - } - - // otherwise, assume its a querySelector, and get its text - return function getChildText( elem ) { - var child = elem.querySelector( query ); - return child && child.textContent; - }; - } - - return mungeSorter; - })(); - - // parsers used in getSortData shortcut strings - Isotope.sortDataParsers = { - 'parseInt': function( val ) { - return parseInt( val, 10 ); - }, - 'parseFloat': function( val ) { - return parseFloat( val ); - } - }; - - // ----- sort method ----- // - - // sort filteredItem order - proto._sort = function() { - if ( !this.options.sortBy ) { - return; - } - // keep track of sortBy History - var sortBys = utils.makeArray( this.options.sortBy ); - if ( !this._getIsSameSortBy( sortBys ) ) { - // concat all sortBy and sortHistory, add to front, oldest goes in last - this.sortHistory = sortBys.concat( this.sortHistory ); - } - // sort magic - var itemSorter = getItemSorter( this.sortHistory, this.options.sortAscending ); - this.filteredItems.sort( itemSorter ); - }; - - // check if sortBys is same as start of sortHistory - proto._getIsSameSortBy = function( sortBys ) { - for ( var i=0; i < sortBys.length; i++ ) { - if ( sortBys[i] != this.sortHistory[i] ) { - return false; - } - } - return true; - }; - - // returns a function used for sorting - function getItemSorter( sortBys, sortAsc ) { - return function sorter( itemA, itemB ) { - // cycle through all sortKeys - for ( var i = 0; i < sortBys.length; i++ ) { - var sortBy = sortBys[i]; - var a = itemA.sortData[ sortBy ]; - var b = itemB.sortData[ sortBy ]; - if ( a > b || a < b ) { - // if sortAsc is an object, use the value given the sortBy key - var isAscending = sortAsc[ sortBy ] !== undefined ? sortAsc[ sortBy ] : sortAsc; - var direction = isAscending ? 1 : -1; - return ( a > b ? 1 : -1 ) * direction; - } - } - return 0; - }; - } - - // -------------------------- methods -------------------------- // - - // get layout mode - proto._mode = function() { - var layoutMode = this.options.layoutMode; - var mode = this.modes[ layoutMode ]; - if ( !mode ) { - // TODO console.error - throw new Error( 'No layout mode: ' + layoutMode ); - } - // HACK sync mode's options - // any options set after init for layout mode need to be synced - mode.options = this.options[ layoutMode ]; - return mode; - }; - - proto._resetLayout = function() { - // trigger original reset layout - Outlayer.prototype._resetLayout.call( this ); - this._mode()._resetLayout(); - }; - - proto._getItemLayoutPosition = function( item ) { - return this._mode()._getItemLayoutPosition( item ); - }; - - proto._manageStamp = function( stamp ) { - this._mode()._manageStamp( stamp ); - }; - - proto._getContainerSize = function() { - return this._mode()._getContainerSize(); - }; - - proto.needsResizeLayout = function() { - return this._mode().needsResizeLayout(); - }; - - // -------------------------- adding & removing -------------------------- // - - // HEADS UP overwrites default Outlayer appended - proto.appended = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - // filter, layout, reveal new items - var filteredItems = this._filterRevealAdded( items ); - // add to filteredItems - this.filteredItems = this.filteredItems.concat( filteredItems ); - }; - - // HEADS UP overwrites default Outlayer prepended - proto.prepended = function( elems ) { - var items = this._itemize( elems ); - if ( !items.length ) { - return; - } - // start new layout - this._resetLayout(); - this._manageStamps(); - // filter, layout, reveal new items - var filteredItems = this._filterRevealAdded( items ); - // layout previous items - this.layoutItems( this.filteredItems ); - // add to items and filteredItems - this.filteredItems = filteredItems.concat( this.filteredItems ); - this.items = items.concat( this.items ); - }; - - proto._filterRevealAdded = function( items ) { - var filtered = this._filter( items ); - this.hide( filtered.needHide ); - // reveal all new items - this.reveal( filtered.matches ); - // layout new items, no transition - this.layoutItems( filtered.matches, true ); - return filtered.matches; - }; - - /** - * Filter, sort, and layout newly-appended item elements - * @param {Array or NodeList or Element} elems - */ - proto.insert = function( elems ) { - var items = this.addItems( elems ); - if ( !items.length ) { - return; - } - // append item elements - var i, item; - var len = items.length; - for ( i=0; i < len; i++ ) { - item = items[i]; - this.element.appendChild( item.element ); - } - // filter new stuff - var filteredInsertItems = this._filter( items ).matches; - // set flag - for ( i=0; i < len; i++ ) { - items[i].isLayoutInstant = true; - } - this.arrange(); - // reset flag - for ( i=0; i < len; i++ ) { - delete items[i].isLayoutInstant; - } - this.reveal( filteredInsertItems ); - }; - - var _remove = proto.remove; - proto.remove = function( elems ) { - elems = utils.makeArray( elems ); - var removeItems = this.getItems( elems ); - // do regular thing - _remove.call( this, elems ); - // bail if no items to remove - var len = removeItems && removeItems.length; - // remove elems from filteredItems - for ( var i=0; len && i < len; i++ ) { - var item = removeItems[i]; - // remove item from collection - utils.removeFrom( this.filteredItems, item ); - } - }; - - proto.shuffle = function() { - // update random sortData - for ( var i=0; i < this.items.length; i++ ) { - var item = this.items[i]; - item.sortData.random = Math.random(); - } - this.options.sortBy = 'random'; - this._sort(); - this._layout(); - }; - - /** - * trigger fn without transition - * kind of hacky to have this in the first place - * @param {Function} fn - * @param {Array} args - * @returns ret - * @private - */ - proto._noTransition = function( fn, args ) { - // save transitionDuration before disabling - var transitionDuration = this.options.transitionDuration; - // disable transition - this.options.transitionDuration = 0; - // do it - var returnValue = fn.apply( this, args ); - // re-enable transition for reveal - this.options.transitionDuration = transitionDuration; - return returnValue; - }; - - // ----- helper methods ----- // - - /** - * getter method for getting filtered item elements - * @returns {Array} elems - collection of item elements - */ - proto.getFilteredItemElements = function() { - return this.filteredItems.map( function( item ) { - return item.element; - }); - }; - - // ----- ----- // - - return Isotope; - -})); - diff --git a/assets/js/jquery-3.5.1.min.js b/assets/js/jquery-3.5.1.min.js deleted file mode 100644 index b061403..0000000 --- a/assets/js/jquery-3.5.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 01,i=c(i),a.delay>=0&&setTimeout(function(){s(!0)},a.delay),(a.delay<0||a.combined)&&(u.e=v(a.throttle,function(t){"resize"===t.type&&(w=B=-1),s(t.all)}),u.a=function(t){t=c(t),i.push.apply(i,t)},u.g=function(){return i=n(i).filter(function(){return!n(this).data(a.loadedName)})},u.f=function(t){for(var e=0;ee.top&&-ne.left&&-n=0?w:w=n(t).width()}function h(){return B>=0?B:B=n(t).height()}function m(t){return t.tagName.toLowerCase()}function b(t,e){if(e){var r=t.split(",");t="";for(var a=0,n=r.length;at||!a.enableThrottle||u?l():n=setTimeout(l,t-f)}}function p(){--z,i.length||z||y("onFinishedAll")}function y(t,e,n){return!!(t=a[t])&&(t.apply(r,[].slice.call(arguments,1)),!0)}var z=0,w=-1,B=-1,L=!1,T="afterLoad",D="load",I="error",N="img",E="src",F="srcset",C="sizes",O="background-image";"event"===a.bind||o?f():n(t).on(D+"."+l,f)}function a(a,o){var u=this,l=n.extend({},u.config,o),f={},c=l.name+"-"+ ++i;return u.config=function(t,r){return r===e?l[t]:(l[t]=r,u)},u.addItems=function(t){return f.a&&f.a("string"===n.type(t)?n(t):t),u},u.getItems=function(){return f.g?f.g():{}},u.update=function(t){return f.e&&f.e({},!t),u},u.force=function(t){return f.f&&f.f("string"===n.type(t)?n(t):t),u},u.loadAll=function(){return f.e&&f.e({all:!0},!0),u},u.destroy=function(){return n(l.appendScroll).off("."+c,f.e),n(t).off("."+c),f={},e},r(u,l,a,f,c),l.chainable?a:u}var n=t.jQuery||t.Zepto,i=0,o=!1;n.fn.Lazy=n.fn.lazy=function(t){return new a(this,t)},n.Lazy=n.lazy=function(t,r,i){if(n.isFunction(r)&&(i=r,r=[]),n.isFunction(i)){t=n.isArray(t)?t:[t],r=n.isArray(r)?r:[r];for(var o=a.prototype.config,u=o._f||(o._f={}),l=0,f=t.length;l":"");"data-src"===e&&o.one("error",c),t.each(r,function(t,a){o.attr(a.name,a.value)}),a.replaceWith(o)};a.one("loadedmetadata",function(){e(!0)}).off("load error").attr("poster",a.attr("data-poster")),o.length?o.each(s):a.attr("data-src")?(t.each(a.attr("data-src").split(","),function(e,r){var o=r.split("|");a.append(t("").one("error",c).attr({src:o[0].trim(),type:o[1].trim()}))}),this.config("removeAttribute")&&a.removeAttr("data-src")):e(!1),i.length&&i.each(s)}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["frame","iframe"],"iframe",function(a,e){var r=this;if("iframe"===a[0].tagName.toLowerCase()){var o=a.attr("data-error-detect");"true"!==o&&"1"!==o?(a.attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")):t.ajax({url:a.attr("data-src"),dataType:"html",crossDomain:!0,xhrFields:{withCredentials:!0},success:function(t){a.html(t).attr("src",a.attr("data-src")),r.config("removeAttribute")&&a.removeAttr("data-src data-error-detect")},error:function(){e(!1)}})}else e(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("noop",function(){}),t.lazy("noop-success",function(t,a){a(!0)}),t.lazy("noop-error",function(t,a){a(!1)})}(window.jQuery||window.Zepto),function(t){function a(a,e,i){var n=a.prop("attributes"),c=t("<"+e+">");return t.each(n,function(t,a){"srcset"!==a.name&&a.name!==o||(a.value=r(a.value,i)),c.attr(a.name,a.value)}),a.replaceWith(c),c}function e(a,e,r){var o=t("").one("load",function(){r(!0)}).one("error",function(){r(!1)}).appendTo(a).attr("src",e);o.complete&&o.load()}function r(t,a){if(a){var e=t.split(",");t="";for(var r=0,o=e.length;r").attr({media:i.attr("data-media"),sizes:i.attr("data-sizes"),type:i.attr("data-type"),srcset:r(i.attr("data-srcset"),d)}).appendTo(i),e(i,d+i.attr(o),n),this.config("removeAttribute")&&i.removeAttr(o+" data-srcset data-media data-sizes data-type")):n(!1)}else n(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["js","javascript","script"],"script",function(t,a){"script"===t[0].tagName.toLowerCase()?(t.attr("src",t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy("vimeo",function(t,a){"iframe"===t[0].tagName.toLowerCase()?(t.attr("src","https://player.vimeo.com/video/"+t.attr("data-src")),this.config("removeAttribute")&&t.removeAttr("data-src")):a(!1)})}(window.jQuery||window.Zepto),function(t){t.lazy(["yt","youtube"],function(t,a){if("iframe"===t[0].tagName.toLowerCase()){var e=/1|true/.test(t.attr("data-nocookie"));t.attr("src","https://www.youtube"+(e?"-nocookie":"")+".com/embed/"+t.attr("data-src")+"?rel=0&showinfo=0"),this.config("removeAttribute")&&t.removeAttr("data-src")}else a(!1)})}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/assets/js/magnific-popup.js b/assets/js/magnific-popup.js deleted file mode 100644 index 927b3c1..0000000 --- a/assets/js/magnific-popup.js +++ /dev/null @@ -1,1860 +0,0 @@ -/*! Magnific Popup - v1.1.0 - 2016-02-20 -* http://dimsemenov.com/plugins/magnific-popup/ -* Copyright (c) 2016 Dmitry Semenov; */ -;(function (factory) { -if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['jquery'], factory); - } else if (typeof exports === 'object') { - // Node/CommonJS - factory(require('jquery')); - } else { - // Browser globals - factory(window.jQuery || window.Zepto); - } - }(function($) { - -/*>>core*/ -/** - * - * Magnific Popup Core JS file - * - */ - - -/** - * Private static constants - */ -var CLOSE_EVENT = 'Close', - BEFORE_CLOSE_EVENT = 'BeforeClose', - AFTER_CLOSE_EVENT = 'AfterClose', - BEFORE_APPEND_EVENT = 'BeforeAppend', - MARKUP_PARSE_EVENT = 'MarkupParse', - OPEN_EVENT = 'Open', - CHANGE_EVENT = 'Change', - NS = 'mfp', - EVENT_NS = '.' + NS, - READY_CLASS = 'mfp-ready', - REMOVING_CLASS = 'mfp-removing', - PREVENT_CLOSE_CLASS = 'mfp-prevent-close'; - - -/** - * Private vars - */ -/*jshint -W079 */ -var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this' - MagnificPopup = function(){}, - _isJQ = !!(window.jQuery), - _prevStatus, - _window = $(window), - _document, - _prevContentType, - _wrapClasses, - _currPopupType; - - -/** - * Private functions - */ -var _mfpOn = function(name, f) { - mfp.ev.on(NS + name + EVENT_NS, f); - }, - _getEl = function(className, appendTo, html, raw) { - var el = document.createElement('div'); - el.className = 'mfp-'+className; - if(html) { - el.innerHTML = html; - } - if(!raw) { - el = $(el); - if(appendTo) { - el.appendTo(appendTo); - } - } else if(appendTo) { - appendTo.appendChild(el); - } - return el; - }, - _mfpTrigger = function(e, data) { - mfp.ev.triggerHandler(NS + e, data); - - if(mfp.st.callbacks) { - // converts "mfpEventName" to "eventName" callback and triggers it if it's present - e = e.charAt(0).toLowerCase() + e.slice(1); - if(mfp.st.callbacks[e]) { - mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]); - } - } - }, - _getCloseBtn = function(type) { - if(type !== _currPopupType || !mfp.currTemplate.closeBtn) { - mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) ); - _currPopupType = type; - } - return mfp.currTemplate.closeBtn; - }, - // Initialize Magnific Popup only when called at least once - _checkInstance = function() { - if(!$.magnificPopup.instance) { - /*jshint -W020 */ - mfp = new MagnificPopup(); - mfp.init(); - $.magnificPopup.instance = mfp; - } - }, - // CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr - supportsTransitions = function() { - var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist - v = ['ms','O','Moz','Webkit']; // 'v' for vendor - - if( s['transition'] !== undefined ) { - return true; - } - - while( v.length ) { - if( v.pop() + 'Transition' in s ) { - return true; - } - } - - return false; - }; - - - -/** - * Public functions - */ -MagnificPopup.prototype = { - - constructor: MagnificPopup, - - /** - * Initializes Magnific Popup plugin. - * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed - */ - init: function() { - var appVersion = navigator.appVersion; - mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener; - mfp.isAndroid = (/android/gi).test(appVersion); - mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion); - mfp.supportsTransition = supportsTransitions(); - - // We disable fixed positioned lightbox on devices that don't handle it nicely. - // If you know a better way of detecting this - let me know. - mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) ); - _document = $(document); - - mfp.popupsCache = {}; - }, - - /** - * Opens popup - * @param data [description] - */ - open: function(data) { - - var i; - - if(data.isObj === false) { - // convert jQuery collection to array to avoid conflicts later - mfp.items = data.items.toArray(); - - mfp.index = 0; - var items = data.items, - item; - for(i = 0; i < items.length; i++) { - item = items[i]; - if(item.parsed) { - item = item.el[0]; - } - if(item === data.el[0]) { - mfp.index = i; - break; - } - } - } else { - mfp.items = $.isArray(data.items) ? data.items : [data.items]; - mfp.index = data.index || 0; - } - - // if popup is already opened - we just update the content - if(mfp.isOpen) { - mfp.updateItemHTML(); - return; - } - - mfp.types = []; - _wrapClasses = ''; - if(data.mainEl && data.mainEl.length) { - mfp.ev = data.mainEl.eq(0); - } else { - mfp.ev = _document; - } - - if(data.key) { - if(!mfp.popupsCache[data.key]) { - mfp.popupsCache[data.key] = {}; - } - mfp.currTemplate = mfp.popupsCache[data.key]; - } else { - mfp.currTemplate = {}; - } - - - - mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); - mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos; - - if(mfp.st.modal) { - mfp.st.closeOnContentClick = false; - mfp.st.closeOnBgClick = false; - mfp.st.showCloseBtn = false; - mfp.st.enableEscapeKey = false; - } - - - // Building markup - // main containers are created only once - if(!mfp.bgOverlay) { - - // Dark overlay - mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() { - mfp.close(); - }); - - mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) { - if(mfp._checkIfClose(e.target)) { - mfp.close(); - } - }); - - mfp.container = _getEl('container', mfp.wrap); - } - - mfp.contentContainer = _getEl('content'); - if(mfp.st.preloader) { - mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading); - } - - - // Initializing modules - var modules = $.magnificPopup.modules; - for(i = 0; i < modules.length; i++) { - var n = modules[i]; - n = n.charAt(0).toUpperCase() + n.slice(1); - mfp['init'+n].call(mfp); - } - _mfpTrigger('BeforeOpen'); - - - if(mfp.st.showCloseBtn) { - // Close button - if(!mfp.st.closeBtnInside) { - mfp.wrap.append( _getCloseBtn() ); - } else { - _mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) { - values.close_replaceWith = _getCloseBtn(item.type); - }); - _wrapClasses += ' mfp-close-btn-in'; - } - } - - if(mfp.st.alignTop) { - _wrapClasses += ' mfp-align-top'; - } - - - - if(mfp.fixedContentPos) { - mfp.wrap.css({ - overflow: mfp.st.overflowY, - overflowX: 'hidden', - overflowY: mfp.st.overflowY - }); - } else { - mfp.wrap.css({ - top: _window.scrollTop(), - position: 'absolute' - }); - } - if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) { - mfp.bgOverlay.css({ - height: _document.height(), - position: 'absolute' - }); - } - - - - if(mfp.st.enableEscapeKey) { - // Close on ESC key - _document.on('keyup' + EVENT_NS, function(e) { - if(e.keyCode === 27) { - mfp.close(); - } - }); - } - - _window.on('resize' + EVENT_NS, function() { - mfp.updateSize(); - }); - - - if(!mfp.st.closeOnContentClick) { - _wrapClasses += ' mfp-auto-cursor'; - } - - if(_wrapClasses) - mfp.wrap.addClass(_wrapClasses); - - - // this triggers recalculation of layout, so we get it once to not to trigger twice - var windowHeight = mfp.wH = _window.height(); - - - var windowStyles = {}; - - if( mfp.fixedContentPos ) { - if(mfp._hasScrollBar(windowHeight)){ - var s = mfp._getScrollbarSize(); - if(s) { - windowStyles.marginRight = s; - } - } - } - - if(mfp.fixedContentPos) { - if(!mfp.isIE7) { - windowStyles.overflow = 'hidden'; - } else { - // ie7 double-scroll bug - $('body, html').css('overflow', 'hidden'); - } - } - - - - var classesToadd = mfp.st.mainClass; - if(mfp.isIE7) { - classesToadd += ' mfp-ie7'; - } - if(classesToadd) { - mfp._addClassToMFP( classesToadd ); - } - - // add content - mfp.updateItemHTML(); - - _mfpTrigger('BuildControls'); - - // remove scrollbar, add margin e.t.c - $('html').css(windowStyles); - - // add everything to DOM - mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) ); - - // Save last focused element - mfp._lastFocusedEl = document.activeElement; - - // Wait for next cycle to allow CSS transition - setTimeout(function() { - - if(mfp.content) { - mfp._addClassToMFP(READY_CLASS); - mfp._setFocus(); - } else { - // if content is not defined (not loaded e.t.c) we add class only for BG - mfp.bgOverlay.addClass(READY_CLASS); - } - - // Trap the focus in popup - _document.on('focusin' + EVENT_NS, mfp._onFocusIn); - - }, 16); - - mfp.isOpen = true; - mfp.updateSize(windowHeight); - _mfpTrigger(OPEN_EVENT); - - return data; - }, - - /** - * Closes the popup - */ - close: function() { - if(!mfp.isOpen) return; - _mfpTrigger(BEFORE_CLOSE_EVENT); - - mfp.isOpen = false; - // for CSS3 animation - if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) { - mfp._addClassToMFP(REMOVING_CLASS); - setTimeout(function() { - mfp._close(); - }, mfp.st.removalDelay); - } else { - mfp._close(); - } - }, - - /** - * Helper for close() function - */ - _close: function() { - _mfpTrigger(CLOSE_EVENT); - - var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' '; - - mfp.bgOverlay.detach(); - mfp.wrap.detach(); - mfp.container.empty(); - - if(mfp.st.mainClass) { - classesToRemove += mfp.st.mainClass + ' '; - } - - mfp._removeClassFromMFP(classesToRemove); - - if(mfp.fixedContentPos) { - var windowStyles = {marginRight: ''}; - if(mfp.isIE7) { - $('body, html').css('overflow', ''); - } else { - windowStyles.overflow = ''; - } - $('html').css(windowStyles); - } - - _document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS); - mfp.ev.off(EVENT_NS); - - // clean up DOM elements that aren't removed - mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style'); - mfp.bgOverlay.attr('class', 'mfp-bg'); - mfp.container.attr('class', 'mfp-container'); - - // remove close button from target element - if(mfp.st.showCloseBtn && - (!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) { - if(mfp.currTemplate.closeBtn) - mfp.currTemplate.closeBtn.detach(); - } - - - if(mfp.st.autoFocusLast && mfp._lastFocusedEl) { - $(mfp._lastFocusedEl).focus(); // put tab focus back - } - mfp.currItem = null; - mfp.content = null; - mfp.currTemplate = null; - mfp.prevHeight = 0; - - _mfpTrigger(AFTER_CLOSE_EVENT); - }, - - updateSize: function(winHeight) { - - if(mfp.isIOS) { - // fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2 - var zoomLevel = document.documentElement.clientWidth / window.innerWidth; - var height = window.innerHeight * zoomLevel; - mfp.wrap.css('height', height); - mfp.wH = height; - } else { - mfp.wH = winHeight || _window.height(); - } - // Fixes #84: popup incorrectly positioned with position:relative on body - if(!mfp.fixedContentPos) { - mfp.wrap.css('height', mfp.wH); - } - - _mfpTrigger('Resize'); - - }, - - /** - * Set content of popup based on current index - */ - updateItemHTML: function() { - var item = mfp.items[mfp.index]; - - // Detach and perform modifications - mfp.contentContainer.detach(); - - if(mfp.content) - mfp.content.detach(); - - if(!item.parsed) { - item = mfp.parseEl( mfp.index ); - } - - var type = item.type; - - _mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]); - // BeforeChange event works like so: - // _mfpOn('BeforeChange', function(e, prevType, newType) { }); - - mfp.currItem = item; - - if(!mfp.currTemplate[type]) { - var markup = mfp.st[type] ? mfp.st[type].markup : false; - - // allows to modify markup - _mfpTrigger('FirstMarkupParse', markup); - - if(markup) { - mfp.currTemplate[type] = $(markup); - } else { - // if there is no markup found we just define that template is parsed - mfp.currTemplate[type] = true; - } - } - - if(_prevContentType && _prevContentType !== item.type) { - mfp.container.removeClass('mfp-'+_prevContentType+'-holder'); - } - - var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]); - mfp.appendContent(newContent, type); - - item.preloaded = true; - - _mfpTrigger(CHANGE_EVENT, item); - _prevContentType = item.type; - - // Append container back after its content changed - mfp.container.prepend(mfp.contentContainer); - - _mfpTrigger('AfterChange'); - }, - - - /** - * Set HTML content of popup - */ - appendContent: function(newContent, type) { - mfp.content = newContent; - - if(newContent) { - if(mfp.st.showCloseBtn && mfp.st.closeBtnInside && - mfp.currTemplate[type] === true) { - // if there is no markup, we just append close button element inside - if(!mfp.content.find('.mfp-close').length) { - mfp.content.append(_getCloseBtn()); - } - } else { - mfp.content = newContent; - } - } else { - mfp.content = ''; - } - - _mfpTrigger(BEFORE_APPEND_EVENT); - mfp.container.addClass('mfp-'+type+'-holder'); - - mfp.contentContainer.append(mfp.content); - }, - - - /** - * Creates Magnific Popup data object based on given data - * @param {int} index Index of item to parse - */ - parseEl: function(index) { - var item = mfp.items[index], - type; - - if(item.tagName) { - item = { el: $(item) }; - } else { - type = item.type; - item = { data: item, src: item.src }; - } - - if(item.el) { - var types = mfp.types; - - // check for 'mfp-TYPE' class - for(var i = 0; i < types.length; i++) { - if( item.el.hasClass('mfp-'+types[i]) ) { - type = types[i]; - break; - } - } - - item.src = item.el.attr('data-mfp-src'); - if(!item.src) { - item.src = item.el.attr('href'); - } - } - - item.type = type || mfp.st.type || 'inline'; - item.index = index; - item.parsed = true; - mfp.items[index] = item; - _mfpTrigger('ElementParse', item); - - return mfp.items[index]; - }, - - - /** - * Initializes single popup or a group of popups - */ - addGroup: function(el, options) { - var eHandler = function(e) { - e.mfpEl = this; - mfp._openClick(e, el, options); - }; - - if(!options) { - options = {}; - } - - var eName = 'click.magnificPopup'; - options.mainEl = el; - - if(options.items) { - options.isObj = true; - el.off(eName).on(eName, eHandler); - } else { - options.isObj = false; - if(options.delegate) { - el.off(eName).on(eName, options.delegate , eHandler); - } else { - options.items = el; - el.off(eName).on(eName, eHandler); - } - } - }, - _openClick: function(e, el, options) { - var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick; - - - if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) { - return; - } - - var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn; - - if(disableOn) { - if($.isFunction(disableOn)) { - if( !disableOn.call(mfp) ) { - return true; - } - } else { // else it's number - if( _window.width() < disableOn ) { - return true; - } - } - } - - if(e.type) { - e.preventDefault(); - - // This will prevent popup from closing if element is inside and popup is already opened - if(mfp.isOpen) { - e.stopPropagation(); - } - } - - options.el = $(e.mfpEl); - if(options.delegate) { - options.items = el.find(options.delegate); - } - mfp.open(options); - }, - - - /** - * Updates text on preloader - */ - updateStatus: function(status, text) { - - if(mfp.preloader) { - if(_prevStatus !== status) { - mfp.container.removeClass('mfp-s-'+_prevStatus); - } - - if(!text && status === 'loading') { - text = mfp.st.tLoading; - } - - var data = { - status: status, - text: text - }; - // allows to modify status - _mfpTrigger('UpdateStatus', data); - - status = data.status; - text = data.text; - - mfp.preloader.html(text); - - mfp.preloader.find('a').on('click', function(e) { - e.stopImmediatePropagation(); - }); - - mfp.container.addClass('mfp-s-'+status); - _prevStatus = status; - } - }, - - - /* - "Private" helpers that aren't private at all - */ - // Check to close popup or not - // "target" is an element that was clicked - _checkIfClose: function(target) { - - if($(target).hasClass(PREVENT_CLOSE_CLASS)) { - return; - } - - var closeOnContent = mfp.st.closeOnContentClick; - var closeOnBg = mfp.st.closeOnBgClick; - - if(closeOnContent && closeOnBg) { - return true; - } else { - - // We close the popup if click is on close button or on preloader. Or if there is no content. - if(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) { - return true; - } - - // if click is outside the content - if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) { - if(closeOnBg) { - // last check, if the clicked element is in DOM, (in case it's removed onclick) - if( $.contains(document, target) ) { - return true; - } - } - } else if(closeOnContent) { - return true; - } - - } - return false; - }, - _addClassToMFP: function(cName) { - mfp.bgOverlay.addClass(cName); - mfp.wrap.addClass(cName); - }, - _removeClassFromMFP: function(cName) { - this.bgOverlay.removeClass(cName); - mfp.wrap.removeClass(cName); - }, - _hasScrollBar: function(winHeight) { - return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) ); - }, - _setFocus: function() { - (mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus(); - }, - _onFocusIn: function(e) { - if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) { - mfp._setFocus(); - return false; - } - }, - _parseMarkup: function(template, values, item) { - var arr; - if(item.data) { - values = $.extend(item.data, values); - } - _mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] ); - - $.each(values, function(key, value) { - if(value === undefined || value === false) { - return true; - } - arr = key.split('_'); - if(arr.length > 1) { - var el = template.find(EVENT_NS + '-'+arr[0]); - - if(el.length > 0) { - var attr = arr[1]; - if(attr === 'replaceWith') { - if(el[0] !== value[0]) { - el.replaceWith(value); - } - } else if(attr === 'img') { - if(el.is('img')) { - el.attr('src', value); - } else { - el.replaceWith( $('').attr('src', value).attr('class', el.attr('class')) ); - } - } else { - el.attr(arr[1], value); - } - } - - } else { - template.find(EVENT_NS + '-'+key).html(value); - } - }); - }, - - _getScrollbarSize: function() { - // thx David - if(mfp.scrollbarSize === undefined) { - var scrollDiv = document.createElement("div"); - scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;'; - document.body.appendChild(scrollDiv); - mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - } - return mfp.scrollbarSize; - } - -}; /* MagnificPopup core prototype end */ - - - - -/** - * Public static functions - */ -$.magnificPopup = { - instance: null, - proto: MagnificPopup.prototype, - modules: [], - - open: function(options, index) { - _checkInstance(); - - if(!options) { - options = {}; - } else { - options = $.extend(true, {}, options); - } - - options.isObj = true; - options.index = index || 0; - return this.instance.open(options); - }, - - close: function() { - return $.magnificPopup.instance && $.magnificPopup.instance.close(); - }, - - registerModule: function(name, module) { - if(module.options) { - $.magnificPopup.defaults[name] = module.options; - } - $.extend(this.proto, module.proto); - this.modules.push(name); - }, - - defaults: { - - // Info about options is in docs: - // http://dimsemenov.com/plugins/magnific-popup/documentation.html#options - - disableOn: 0, - - key: null, - - midClick: false, - - mainClass: '', - - preloader: true, - - focus: '', // CSS selector of input to focus after popup is opened - - closeOnContentClick: false, - - closeOnBgClick: true, - - closeBtnInside: true, - - showCloseBtn: true, - - enableEscapeKey: true, - - modal: false, - - alignTop: false, - - removalDelay: 0, - - prependTo: null, - - fixedContentPos: 'auto', - - fixedBgPos: 'auto', - - overflowY: 'auto', - - closeMarkup: '', - - tClose: 'Close (Esc)', - - tLoading: 'Loading...', - - autoFocusLast: true - - } -}; - - - -$.fn.magnificPopup = function(options) { - _checkInstance(); - - var jqEl = $(this); - - // We call some API method of first param is a string - if (typeof options === "string" ) { - - if(options === 'open') { - var items, - itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup, - index = parseInt(arguments[1], 10) || 0; - - if(itemOpts.items) { - items = itemOpts.items[index]; - } else { - items = jqEl; - if(itemOpts.delegate) { - items = items.find(itemOpts.delegate); - } - items = items.eq( index ); - } - mfp._openClick({mfpEl:items}, jqEl, itemOpts); - } else { - if(mfp.isOpen) - mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1)); - } - - } else { - // clone options obj - options = $.extend(true, {}, options); - - /* - * As Zepto doesn't support .data() method for objects - * and it works only in normal browsers - * we assign "options" object directly to the DOM element. FTW! - */ - if(_isJQ) { - jqEl.data('magnificPopup', options); - } else { - jqEl[0].magnificPopup = options; - } - - mfp.addGroup(jqEl, options); - - } - return jqEl; -}; - -/*>>core*/ - -/*>>inline*/ - -var INLINE_NS = 'inline', - _hiddenClass, - _inlinePlaceholder, - _lastInlineElement, - _putInlineElementsBack = function() { - if(_lastInlineElement) { - _inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach(); - _lastInlineElement = null; - } - }; - -$.magnificPopup.registerModule(INLINE_NS, { - options: { - hiddenClass: 'hide', // will be appended with `mfp-` prefix - markup: '', - tNotFound: 'Content not found' - }, - proto: { - - initInline: function() { - mfp.types.push(INLINE_NS); - - _mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() { - _putInlineElementsBack(); - }); - }, - - getInline: function(item, template) { - - _putInlineElementsBack(); - - if(item.src) { - var inlineSt = mfp.st.inline, - el = $(item.src); - - if(el.length) { - - // If target element has parent - we replace it with placeholder and put it back after popup is closed - var parent = el[0].parentNode; - if(parent && parent.tagName) { - if(!_inlinePlaceholder) { - _hiddenClass = inlineSt.hiddenClass; - _inlinePlaceholder = _getEl(_hiddenClass); - _hiddenClass = 'mfp-'+_hiddenClass; - } - // replace target inline element with placeholder - _lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass); - } - - mfp.updateStatus('ready'); - } else { - mfp.updateStatus('error', inlineSt.tNotFound); - el = $('
'); - } - - item.inlineElement = el; - return el; - } - - mfp.updateStatus('ready'); - mfp._parseMarkup(template, {}, item); - return template; - } - } -}); - -/*>>inline*/ - -/*>>ajax*/ -var AJAX_NS = 'ajax', - _ajaxCur, - _removeAjaxCursor = function() { - if(_ajaxCur) { - $(document.body).removeClass(_ajaxCur); - } - }, - _destroyAjaxRequest = function() { - _removeAjaxCursor(); - if(mfp.req) { - mfp.req.abort(); - } - }; - -$.magnificPopup.registerModule(AJAX_NS, { - - options: { - settings: null, - cursor: 'mfp-ajax-cur', - tError: 'The content could not be loaded.' - }, - - proto: { - initAjax: function() { - mfp.types.push(AJAX_NS); - _ajaxCur = mfp.st.ajax.cursor; - - _mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest); - _mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest); - }, - getAjax: function(item) { - - if(_ajaxCur) { - $(document.body).addClass(_ajaxCur); - } - - mfp.updateStatus('loading'); - - var opts = $.extend({ - url: item.src, - success: function(data, textStatus, jqXHR) { - var temp = { - data:data, - xhr:jqXHR - }; - - _mfpTrigger('ParseAjax', temp); - - mfp.appendContent( $(temp.data), AJAX_NS ); - - item.finished = true; - - _removeAjaxCursor(); - - mfp._setFocus(); - - setTimeout(function() { - mfp.wrap.addClass(READY_CLASS); - }, 16); - - mfp.updateStatus('ready'); - - _mfpTrigger('AjaxContentAdded'); - }, - error: function() { - _removeAjaxCursor(); - item.finished = item.loadError = true; - mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src)); - } - }, mfp.st.ajax.settings); - - mfp.req = $.ajax(opts); - - return ''; - } - } -}); - -/*>>ajax*/ - -/*>>image*/ -var _imgInterval, - _getTitle = function(item) { - if(item.data && item.data.title !== undefined) - return item.data.title; - - var src = mfp.st.image.titleSrc; - - if(src) { - if($.isFunction(src)) { - return src.call(mfp, item); - } else if(item.el) { - return item.el.attr(src) || ''; - } - } - return ''; - }; - -$.magnificPopup.registerModule('image', { - - options: { - markup: '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
'+ - '
', - cursor: 'mfp-zoom-out-cur', - titleSrc: 'title', - verticalFit: true, - tError: 'The image could not be loaded.' - }, - - proto: { - initImage: function() { - var imgSt = mfp.st.image, - ns = '.image'; - - mfp.types.push('image'); - - _mfpOn(OPEN_EVENT+ns, function() { - if(mfp.currItem.type === 'image' && imgSt.cursor) { - $(document.body).addClass(imgSt.cursor); - } - }); - - _mfpOn(CLOSE_EVENT+ns, function() { - if(imgSt.cursor) { - $(document.body).removeClass(imgSt.cursor); - } - _window.off('resize' + EVENT_NS); - }); - - _mfpOn('Resize'+ns, mfp.resizeImage); - if(mfp.isLowIE) { - _mfpOn('AfterChange', mfp.resizeImage); - } - }, - resizeImage: function() { - var item = mfp.currItem; - if(!item || !item.img) return; - - if(mfp.st.image.verticalFit) { - var decr = 0; - // fix box-sizing in ie7/8 - if(mfp.isLowIE) { - decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10); - } - item.img.css('max-height', mfp.wH-decr); - } - }, - _onImageHasSize: function(item) { - if(item.img) { - - item.hasSize = true; - - if(_imgInterval) { - clearInterval(_imgInterval); - } - - item.isCheckingImgSize = false; - - _mfpTrigger('ImageHasSize', item); - - if(item.imgHidden) { - if(mfp.content) - mfp.content.removeClass('mfp-loading'); - - item.imgHidden = false; - } - - } - }, - - /** - * Function that loops until the image has size to display elements that rely on it asap - */ - findImageSize: function(item) { - - var counter = 0, - img = item.img[0], - mfpSetInterval = function(delay) { - - if(_imgInterval) { - clearInterval(_imgInterval); - } - // decelerating interval that checks for size of an image - _imgInterval = setInterval(function() { - if(img.naturalWidth > 0) { - mfp._onImageHasSize(item); - return; - } - - if(counter > 200) { - clearInterval(_imgInterval); - } - - counter++; - if(counter === 3) { - mfpSetInterval(10); - } else if(counter === 40) { - mfpSetInterval(50); - } else if(counter === 100) { - mfpSetInterval(500); - } - }, delay); - }; - - mfpSetInterval(1); - }, - - getImage: function(item, template) { - - var guard = 0, - - // image load complete handler - onLoadComplete = function() { - if(item) { - if (item.img[0].complete) { - item.img.off('.mfploader'); - - if(item === mfp.currItem){ - mfp._onImageHasSize(item); - - mfp.updateStatus('ready'); - } - - item.hasSize = true; - item.loaded = true; - - _mfpTrigger('ImageLoadComplete'); - - } - else { - // if image complete check fails 200 times (20 sec), we assume that there was an error. - guard++; - if(guard < 200) { - setTimeout(onLoadComplete,100); - } else { - onLoadError(); - } - } - } - }, - - // image error handler - onLoadError = function() { - if(item) { - item.img.off('.mfploader'); - if(item === mfp.currItem){ - mfp._onImageHasSize(item); - mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); - } - - item.hasSize = true; - item.loaded = true; - item.loadError = true; - } - }, - imgSt = mfp.st.image; - - - var el = template.find('.mfp-img'); - if(el.length) { - var img = document.createElement('img'); - img.className = 'mfp-img'; - if(item.el && item.el.find('img').length) { - img.alt = item.el.find('img').attr('alt'); - } - item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError); - img.src = item.src; - - // without clone() "error" event is not firing when IMG is replaced by new IMG - // TODO: find a way to avoid such cloning - if(el.is('img')) { - item.img = item.img.clone(); - } - - img = item.img[0]; - if(img.naturalWidth > 0) { - item.hasSize = true; - } else if(!img.width) { - item.hasSize = false; - } - } - - mfp._parseMarkup(template, { - title: _getTitle(item), - img_replaceWith: item.img - }, item); - - mfp.resizeImage(); - - if(item.hasSize) { - if(_imgInterval) clearInterval(_imgInterval); - - if(item.loadError) { - template.addClass('mfp-loading'); - mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) ); - } else { - template.removeClass('mfp-loading'); - mfp.updateStatus('ready'); - } - return template; - } - - mfp.updateStatus('loading'); - item.loading = true; - - if(!item.hasSize) { - item.imgHidden = true; - template.addClass('mfp-loading'); - mfp.findImageSize(item); - } - - return template; - } - } -}); - -/*>>image*/ - -/*>>zoom*/ -var hasMozTransform, - getHasMozTransform = function() { - if(hasMozTransform === undefined) { - hasMozTransform = document.createElement('p').style.MozTransform !== undefined; - } - return hasMozTransform; - }; - -$.magnificPopup.registerModule('zoom', { - - options: { - enabled: false, - easing: 'ease-in-out', - duration: 300, - opener: function(element) { - return element.is('img') ? element : element.find('img'); - } - }, - - proto: { - - initZoom: function() { - var zoomSt = mfp.st.zoom, - ns = '.zoom', - image; - - if(!zoomSt.enabled || !mfp.supportsTransition) { - return; - } - - var duration = zoomSt.duration, - getElToAnimate = function(image) { - var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'), - transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing, - cssObj = { - position: 'fixed', - zIndex: 9999, - left: 0, - top: 0, - '-webkit-backface-visibility': 'hidden' - }, - t = 'transition'; - - cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition; - - newImg.css(cssObj); - return newImg; - }, - showMainContent = function() { - mfp.content.css('visibility', 'visible'); - }, - openTimeout, - animatedImg; - - _mfpOn('BuildControls'+ns, function() { - if(mfp._allowZoom()) { - - clearTimeout(openTimeout); - mfp.content.css('visibility', 'hidden'); - - // Basically, all code below does is clones existing image, puts in on top of the current one and animated it - - image = mfp._getItemToZoom(); - - if(!image) { - showMainContent(); - return; - } - - animatedImg = getElToAnimate(image); - - animatedImg.css( mfp._getOffset() ); - - mfp.wrap.append(animatedImg); - - openTimeout = setTimeout(function() { - animatedImg.css( mfp._getOffset( true ) ); - openTimeout = setTimeout(function() { - - showMainContent(); - - setTimeout(function() { - animatedImg.remove(); - image = animatedImg = null; - _mfpTrigger('ZoomAnimationEnded'); - }, 16); // avoid blink when switching images - - }, duration); // this timeout equals animation duration - - }, 16); // by adding this timeout we avoid short glitch at the beginning of animation - - - // Lots of timeouts... - } - }); - _mfpOn(BEFORE_CLOSE_EVENT+ns, function() { - if(mfp._allowZoom()) { - - clearTimeout(openTimeout); - - mfp.st.removalDelay = duration; - - if(!image) { - image = mfp._getItemToZoom(); - if(!image) { - return; - } - animatedImg = getElToAnimate(image); - } - - animatedImg.css( mfp._getOffset(true) ); - mfp.wrap.append(animatedImg); - mfp.content.css('visibility', 'hidden'); - - setTimeout(function() { - animatedImg.css( mfp._getOffset() ); - }, 16); - } - - }); - - _mfpOn(CLOSE_EVENT+ns, function() { - if(mfp._allowZoom()) { - showMainContent(); - if(animatedImg) { - animatedImg.remove(); - } - image = null; - } - }); - }, - - _allowZoom: function() { - return mfp.currItem.type === 'image'; - }, - - _getItemToZoom: function() { - if(mfp.currItem.hasSize) { - return mfp.currItem.img; - } else { - return false; - } - }, - - // Get element postion relative to viewport - _getOffset: function(isLarge) { - var el; - if(isLarge) { - el = mfp.currItem.img; - } else { - el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem); - } - - var offset = el.offset(); - var paddingTop = parseInt(el.css('padding-top'),10); - var paddingBottom = parseInt(el.css('padding-bottom'),10); - offset.top -= ( $(window).scrollTop() - paddingTop ); - - - /* - - Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa. - - */ - var obj = { - width: el.width(), - // fix Zepto height+padding issue - height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop - }; - - // I hate to do this, but there is no another option - if( getHasMozTransform() ) { - obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)'; - } else { - obj.left = offset.left; - obj.top = offset.top; - } - return obj; - } - - } -}); - - - -/*>>zoom*/ - -/*>>iframe*/ - -var IFRAME_NS = 'iframe', - _emptyPage = '//about:blank', - - _fixIframeBugs = function(isShowing) { - if(mfp.currTemplate[IFRAME_NS]) { - var el = mfp.currTemplate[IFRAME_NS].find('iframe'); - if(el.length) { - // reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug - if(!isShowing) { - el[0].src = _emptyPage; - } - - // IE8 black screen bug fix - if(mfp.isIE8) { - el.css('display', isShowing ? 'block' : 'none'); - } - } - } - }; - -$.magnificPopup.registerModule(IFRAME_NS, { - - options: { - markup: '
'+ - '
'+ - ''+ - '
', - - srcAction: 'iframe_src', - - // we don't care and support only one default type of URL by default - patterns: { - youtube: { - index: 'youtube.com', - id: 'v=', - src: '//www.youtube.com/embed/%id%?autoplay=1' - }, - vimeo: { - index: 'vimeo.com/', - id: '/', - src: '//player.vimeo.com/video/%id%?autoplay=1' - }, - gmaps: { - index: '//maps.google.', - src: '%id%&output=embed' - } - } - }, - - proto: { - initIframe: function() { - mfp.types.push(IFRAME_NS); - - _mfpOn('BeforeChange', function(e, prevType, newType) { - if(prevType !== newType) { - if(prevType === IFRAME_NS) { - _fixIframeBugs(); // iframe if removed - } else if(newType === IFRAME_NS) { - _fixIframeBugs(true); // iframe is showing - } - }// else { - // iframe source is switched, don't do anything - //} - }); - - _mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() { - _fixIframeBugs(); - }); - }, - - getIframe: function(item, template) { - var embedSrc = item.src; - var iframeSt = mfp.st.iframe; - - $.each(iframeSt.patterns, function() { - if(embedSrc.indexOf( this.index ) > -1) { - if(this.id) { - if(typeof this.id === 'string') { - embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length); - } else { - embedSrc = this.id.call( this, embedSrc ); - } - } - embedSrc = this.src.replace('%id%', embedSrc ); - return false; // break; - } - }); - - var dataObj = {}; - if(iframeSt.srcAction) { - dataObj[iframeSt.srcAction] = embedSrc; - } - mfp._parseMarkup(template, dataObj, item); - - mfp.updateStatus('ready'); - - return template; - } - } -}); - - - -/*>>iframe*/ - -/*>>gallery*/ -/** - * Get looped index depending on number of slides - */ -var _getLoopedId = function(index) { - var numSlides = mfp.items.length; - if(index > numSlides - 1) { - return index - numSlides; - } else if(index < 0) { - return numSlides + index; - } - return index; - }, - _replaceCurrTotal = function(text, curr, total) { - return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total); - }; - -$.magnificPopup.registerModule('gallery', { - - options: { - enabled: false, - arrowMarkup: '', - preload: [0,2], - navigateByImgClick: true, - arrows: true, - - tPrev: 'Previous (Left arrow key)', - tNext: 'Next (Right arrow key)', - tCounter: '%curr% of %total%' - }, - - proto: { - initGallery: function() { - - var gSt = mfp.st.gallery, - ns = '.mfp-gallery'; - - mfp.direction = true; // true - next, false - prev - - if(!gSt || !gSt.enabled ) return false; - - _wrapClasses += ' mfp-gallery'; - - _mfpOn(OPEN_EVENT+ns, function() { - - if(gSt.navigateByImgClick) { - mfp.wrap.on('click'+ns, '.mfp-img', function() { - if(mfp.items.length > 1) { - mfp.next(); - return false; - } - }); - } - - _document.on('keydown'+ns, function(e) { - if (e.keyCode === 37) { - mfp.prev(); - } else if (e.keyCode === 39) { - mfp.next(); - } - }); - }); - - _mfpOn('UpdateStatus'+ns, function(e, data) { - if(data.text) { - data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length); - } - }); - - _mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) { - var l = mfp.items.length; - values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : ''; - }); - - _mfpOn('BuildControls' + ns, function() { - if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) { - var markup = gSt.arrowMarkup, - arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS), - arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS); - - arrowLeft.click(function() { - mfp.prev(); - }); - arrowRight.click(function() { - mfp.next(); - }); - - mfp.container.append(arrowLeft.add(arrowRight)); - } - }); - - _mfpOn(CHANGE_EVENT+ns, function() { - if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout); - - mfp._preloadTimeout = setTimeout(function() { - mfp.preloadNearbyImages(); - mfp._preloadTimeout = null; - }, 16); - }); - - - _mfpOn(CLOSE_EVENT+ns, function() { - _document.off(ns); - mfp.wrap.off('click'+ns); - mfp.arrowRight = mfp.arrowLeft = null; - }); - - }, - next: function() { - mfp.direction = true; - mfp.index = _getLoopedId(mfp.index + 1); - mfp.updateItemHTML(); - }, - prev: function() { - mfp.direction = false; - mfp.index = _getLoopedId(mfp.index - 1); - mfp.updateItemHTML(); - }, - goTo: function(newIndex) { - mfp.direction = (newIndex >= mfp.index); - mfp.index = newIndex; - mfp.updateItemHTML(); - }, - preloadNearbyImages: function() { - var p = mfp.st.gallery.preload, - preloadBefore = Math.min(p[0], mfp.items.length), - preloadAfter = Math.min(p[1], mfp.items.length), - i; - - for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) { - mfp._preloadItem(mfp.index+i); - } - for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) { - mfp._preloadItem(mfp.index-i); - } - }, - _preloadItem: function(index) { - index = _getLoopedId(index); - - if(mfp.items[index].preloaded) { - return; - } - - var item = mfp.items[index]; - if(!item.parsed) { - item = mfp.parseEl( index ); - } - - _mfpTrigger('LazyLoad', item); - - if(item.type === 'image') { - item.img = $('').on('load.mfploader', function() { - item.hasSize = true; - }).on('error.mfploader', function() { - item.hasSize = true; - item.loadError = true; - _mfpTrigger('LazyLoadError', item); - }).attr('src', item.src); - } - - - item.preloaded = true; - } - } -}); - -/*>>gallery*/ - -/*>>retina*/ - -var RETINA_NS = 'retina'; - -$.magnificPopup.registerModule(RETINA_NS, { - options: { - replaceSrc: function(item) { - return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; }); - }, - ratio: 1 // Function or number. Set to 1 to disable. - }, - proto: { - initRetina: function() { - if(window.devicePixelRatio > 1) { - - var st = mfp.st.retina, - ratio = st.ratio; - - ratio = !isNaN(ratio) ? ratio : ratio(); - - if(ratio > 1) { - _mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) { - item.img.css({ - 'max-width': item.img[0].naturalWidth / ratio, - 'width': '100%' - }); - }); - _mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) { - item.src = st.replaceSrc(item, ratio); - }); - } - } - - } - } -}); - -/*>>retina*/ - _checkInstance(); })); \ No newline at end of file diff --git a/assets/js/typed-2.0.16.js b/assets/js/typed-2.0.16.js deleted file mode 100644 index ee86c0e..0000000 --- a/assets/js/typed-2.0.16.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(t,s){"object"==typeof exports&&"undefined"!=typeof module?module.exports=s():"function"==typeof define&&define.amd?define(s):(t||self).Typed=s()}(this,function(){function t(){return t=Object.assign?Object.assign.bind():function(t){for(var s=1;s0&&(e.strPos=e.currentElContent.length-1,e.strings.unshift(e.currentElContent)),e.sequence=[],e.strings)e.sequence[u]=u;e.arrayPos=0,e.stopNum=0,e.loop=e.options.loop,e.loopCount=e.options.loopCount,e.curLoop=0,e.shuffle=e.options.shuffle,e.pause={status:!1,typewrite:!0,curString:"",curStrPos:0},e.typingComplete=!1,e.autoInsertCss=e.options.autoInsertCss,e.autoInsertCss&&(this.appendCursorAnimationCss(e),this.appendFadeOutAnimationCss(e))},n.getCurrentElContent=function(t){return t.attr?t.el.getAttribute(t.attr):t.isInput?t.el.value:"html"===t.contentType?t.el.innerHTML:t.el.textContent},n.appendCursorAnimationCss=function(t){var s="data-typed-js-cursor-css";if(t.showCursor&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-cursor{\n opacity: 1;\n }\n .typed-cursor.typed-cursor--blink{\n animation: typedjsBlink 0.7s infinite;\n -webkit-animation: typedjsBlink 0.7s infinite;\n animation: typedjsBlink 0.7s infinite;\n }\n @keyframes typedjsBlink{\n 50% { opacity: 0.0; }\n }\n @-webkit-keyframes typedjsBlink{\n 0% { opacity: 1; }\n 50% { opacity: 0.0; }\n 100% { opacity: 1; }\n }\n ",document.body.appendChild(e)}},n.appendFadeOutAnimationCss=function(t){var s="data-typed-fadeout-js-css";if(t.fadeOut&&!document.querySelector("["+s+"]")){var e=document.createElement("style");e.setAttribute(s,"true"),e.innerHTML="\n .typed-fade-out{\n opacity: 0;\n transition: opacity .25s;\n }\n .typed-cursor.typed-cursor--blink.typed-fade-out{\n -webkit-animation: 0;\n animation: 0;\n }\n ",document.body.appendChild(e)}},e}()),n=new(/*#__PURE__*/function(){function t(){}var s=t.prototype;return s.typeHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if("<"===n||"&"===n){var i;for(i="<"===n?">":";";t.substring(s+1).charAt(0)!==i&&!(1+ ++s>t.length););s++}return s},s.backSpaceHtmlChars=function(t,s,e){if("html"!==e.contentType)return s;var n=t.substring(s).charAt(0);if(">"===n||";"===n){var i;for(i=">"===n?"<":"&";t.substring(s-1).charAt(0)!==i&&!(--s<0););s--}return s},t}());/*#__PURE__*/ - return function(){function t(t,s){e.load(this,s,t),this.begin()}var s=t.prototype;return s.toggle=function(){this.pause.status?this.start():this.stop()},s.stop=function(){this.typingComplete||this.pause.status||(this.toggleBlinking(!0),this.pause.status=!0,this.options.onStop(this.arrayPos,this))},s.start=function(){this.typingComplete||this.pause.status&&(this.pause.status=!1,this.pause.typewrite?this.typewrite(this.pause.curString,this.pause.curStrPos):this.backspace(this.pause.curString,this.pause.curStrPos),this.options.onStart(this.arrayPos,this))},s.destroy=function(){this.reset(!1),this.options.onDestroy(this)},s.reset=function(t){void 0===t&&(t=!0),clearInterval(this.timeout),this.replaceText(""),this.cursor&&this.cursor.parentNode&&(this.cursor.parentNode.removeChild(this.cursor),this.cursor=null),this.strPos=0,this.arrayPos=0,this.curLoop=0,t&&(this.insertCursor(),this.options.onReset(this),this.begin())},s.begin=function(){var t=this;this.options.onBegin(this),this.typingComplete=!1,this.shuffleStringsIfNeeded(this),this.insertCursor(),this.bindInputFocusEvents&&this.bindFocusEvents(),this.timeout=setTimeout(function(){0===t.strPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],t.strPos):t.backspace(t.strings[t.sequence[t.arrayPos]],t.strPos)},this.startDelay)},s.typewrite=function(t,s){var e=this;this.fadeOut&&this.el.classList.contains(this.fadeOutClass)&&(this.el.classList.remove(this.fadeOutClass),this.cursor&&this.cursor.classList.remove(this.fadeOutClass));var i=this.humanizer(this.typeSpeed),r=1;!0!==this.pause.status?this.timeout=setTimeout(function(){s=n.typeHtmlChars(t,s,e);var i=0,o=t.substring(s);if("^"===o.charAt(0)&&/^\^\d+/.test(o)){var a=1;a+=(o=/\d+/.exec(o)[0]).length,i=parseInt(o),e.temporaryPause=!0,e.options.onTypingPaused(e.arrayPos,e),t=t.substring(0,s)+t.substring(s+a),e.toggleBlinking(!0)}if("`"===o.charAt(0)){for(;"`"!==t.substring(s+r).charAt(0)&&(r++,!(s+r>t.length)););var u=t.substring(0,s),p=t.substring(u.length+1,s+r),c=t.substring(s+r+1);t=u+p+c,r--}e.timeout=setTimeout(function(){e.toggleBlinking(!1),s>=t.length?e.doneTyping(t,s):e.keepTyping(t,s,r),e.temporaryPause&&(e.temporaryPause=!1,e.options.onTypingResumed(e.arrayPos,e))},i)},i):this.setPauseStatus(t,s,!0)},s.keepTyping=function(t,s,e){0===s&&(this.toggleBlinking(!1),this.options.preStringTyped(this.arrayPos,this));var n=t.substring(0,s+=e);this.replaceText(n),this.typewrite(t,s)},s.doneTyping=function(t,s){var e=this;this.options.onStringTyped(this.arrayPos,this),this.toggleBlinking(!0),this.arrayPos===this.strings.length-1&&(this.complete(),!1===this.loop||this.curLoop===this.loopCount)||(this.timeout=setTimeout(function(){e.backspace(t,s)},this.backDelay))},s.backspace=function(t,s){var e=this;if(!0!==this.pause.status){if(this.fadeOut)return this.initFadeOut();this.toggleBlinking(!1);var i=this.humanizer(this.backSpeed);this.timeout=setTimeout(function(){s=n.backSpaceHtmlChars(t,s,e);var i=t.substring(0,s);if(e.replaceText(i),e.smartBackspace){var r=e.strings[e.arrayPos+1];e.stopNum=r&&i===r.substring(0,s)?s:0}s>e.stopNum?(s--,e.backspace(t,s)):s<=e.stopNum&&(e.arrayPos++,e.arrayPos===e.strings.length?(e.arrayPos=0,e.options.onLastStringBackspaced(),e.shuffleStringsIfNeeded(),e.begin()):e.typewrite(e.strings[e.sequence[e.arrayPos]],s))},i)}else this.setPauseStatus(t,s,!1)},s.complete=function(){this.options.onComplete(this),this.loop?this.curLoop++:this.typingComplete=!0},s.setPauseStatus=function(t,s,e){this.pause.typewrite=e,this.pause.curString=t,this.pause.curStrPos=s},s.toggleBlinking=function(t){this.cursor&&(this.pause.status||this.cursorBlinking!==t&&(this.cursorBlinking=t,t?this.cursor.classList.add("typed-cursor--blink"):this.cursor.classList.remove("typed-cursor--blink")))},s.humanizer=function(t){return Math.round(Math.random()*t/2)+t},s.shuffleStringsIfNeeded=function(){this.shuffle&&(this.sequence=this.sequence.sort(function(){return Math.random()-.5}))},s.initFadeOut=function(){var t=this;return this.el.className+=" "+this.fadeOutClass,this.cursor&&(this.cursor.className+=" "+this.fadeOutClass),setTimeout(function(){t.arrayPos++,t.replaceText(""),t.strings.length>t.arrayPos?t.typewrite(t.strings[t.sequence[t.arrayPos]],0):(t.typewrite(t.strings[0],0),t.arrayPos=0)},this.fadeOutDelay)},s.replaceText=function(t){this.attr?this.el.setAttribute(this.attr,t):this.isInput?this.el.value=t:"html"===this.contentType?this.el.innerHTML=t:this.el.textContent=t},s.bindFocusEvents=function(){var t=this;this.isInput&&(this.el.addEventListener("focus",function(s){t.stop()}),this.el.addEventListener("blur",function(s){t.el.value&&0!==t.el.value.length||t.start()}))},s.insertCursor=function(){this.showCursor&&(this.cursor||(this.cursor=document.createElement("span"),this.cursor.className="typed-cursor",this.cursor.setAttribute("aria-hidden",!0),this.cursor.innerHTML=this.cursorChar,this.el.parentNode&&this.el.parentNode.insertBefore(this.cursor,this.el.nextSibling)))},t}()}); -//# sourceMappingURL=typed.umd.js.map \ No newline at end of file diff --git a/assets/manifest.json b/assets/manifest.json deleted file mode 100644 index f564cb1..0000000 --- a/assets/manifest.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "Moh Ravi Dwi Putra", - "short_name": "Moh Ravi Dwi Putra", - "start_url": "/", - "scope": "/", - "display": "standalone", - "background_color": "#28282f", - "theme_color": "#28282f", - "description": "Moh Ravi Dwi Putra's profile website, which contains important information about him such as your resume, portfolio, awards, certification, and contact.", - "icons": [ - { - "src": "/assets/icon/android-icon-48x48.png", - "sizes": "48x48", - "type": "image/png" - }, - { - "src": "/assets/icon/android-icon-72x72.png", - "sizes": "72x72", - "type": "image/png" - }, - { - "src": "/assets/icon/android-icon-96x96.png", - "sizes": "96x96", - "type": "image/png" - }, - { - "src": "/assets/icon/android-icon-144x144.png", - "sizes": "144x144", - "type": "image/png" - }, - { - "src": "/assets/icon/android-icon-192x192.png", - "sizes": "192x192", - "type": "image/png" - } - ] -} diff --git a/awards.md b/awards.md deleted file mode 100644 index d71c864..0000000 --- a/awards.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Awards & Certification | Moh Ravi Dwi Putra -titlecontent: Awards & Certification -first: Awards & -last: Certification -layout: simple -permalink: /awards ---- diff --git a/contact.md b/contact.md deleted file mode 100644 index b6c87df..0000000 --- a/contact.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Contact | Moh Ravi Dwi Putra -titlecontent: Contact -layout: content -permalink: /contact ---- diff --git a/google3be526de571976fc.html b/google3be526de571976fc.html deleted file mode 100644 index 8a580e2..0000000 --- a/google3be526de571976fc.html +++ /dev/null @@ -1 +0,0 @@ -google-site-verification: google3be526de571976fc.html \ No newline at end of file diff --git a/index.md b/index.md deleted file mode 100644 index 9867491..0000000 --- a/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Moh Ravi Dwi Putra -first: Moh Ravi -last: Dwi Putra -layout: default ---- diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 01eee3a..0000000 --- a/netlify.toml +++ /dev/null @@ -1,20 +0,0 @@ -# Config for the Netlify Build Plugin: netlify-plugin-minify-html -[[plugins]] - package = "netlify-plugin-minify-html" - - # Specify which deploy contexts we'll minify HTML in. - # Supports any Deploy Contexts available in Netlify. - # https://docs.netlify.com/site-deploys/overview/#deploy-contexts - [plugins.inputs] - contexts = [ - 'production', - 'branch-deploy', - 'deploy-preview' - ] - - # Optionally, override the default options for the minification - # https://github.com/kangax/html-minifier#options-quick-reference - [plugins.inputs.minifierOptions] - removeComments = true - collapseInlineTagWhitespace = false - removeTagWhitespace = true \ No newline at end of file diff --git a/offline.md b/offline.md deleted file mode 100644 index 556ff7c..0000000 --- a/offline.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Offline | Moh Ravi Dwi Putra -titlecontent: Offline -desc: Check your connection internet before access this page. -layout: default -permalink: /offline ---- diff --git a/portfolio.md b/portfolio.md deleted file mode 100644 index 512c6d3..0000000 --- a/portfolio.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Portfolio | Moh Ravi Dwi Putra -titlecontent: Portfolio -layout: content -permalink: /portfolio ---- diff --git a/resume.md b/resume.md deleted file mode 100644 index 6cb0982..0000000 --- a/resume.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Resume | Moh Ravi Dwi Putra -titlecontent: Resume -layout: simple -permalink: /resume ---- - -Introducing my name is Moh Ravi Dwi Putra usually called by the name Ravi, I was born in -Lamongan and grew up in the city of Surabaya. I was a figure who like information and -technology activities, in this case I also often contribute to my activities such as finding -defects in an application that is distributed on the internet for free and fix it. I also -like things outside of information technology such as building relationships and running a -business in order to grow my entrepreneurial spirit, besides that I am also happy to -contribute developing human resources in my country. diff --git a/sitemap.xml b/sitemap.xml deleted file mode 100644 index e091ecb..0000000 --- a/sitemap.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - https://ravidwiputra.my.id/ - 2020-03-31T19:11:30+01:00 - 1.00 - - - https://ravidwiputra.my.id/portfolio - 2020-03-31T19:11:30+01:00 - 1.00 - - - https://ravidwiputra.my.id/resume - 2020-03-31T19:11:30+01:00 - 1.0 - - - https://ravidwiputra.my.id/awards - 2020-03-31T19:11:30+01:00 - 1.0 - - - https://ravidwiputra.my.id/contact - 2020-03-31T19:11:30+01:00 - 1.0 - - \ No newline at end of file diff --git a/success.md b/success.md deleted file mode 100644 index cc91d8b..0000000 --- a/success.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Success | Moh Ravi Dwi Putra -titlecontent: Success -desc: Thanks, your message is sent successfully. We will contact you shortly! -layout: default -permalink: /success ---- diff --git a/sw.js b/sw.js deleted file mode 100644 index 3372fed..0000000 --- a/sw.js +++ /dev/null @@ -1,117 +0,0 @@ -importScripts( - "https://unpkg.com/workbox-sw@0.0.2/build/importScripts/workbox-sw.dev.v0.0.2.js" -); -importScripts( - "https://unpkg.com/workbox-runtime-caching@1.3.0/build/importScripts/workbox-runtime-caching.prod.v1.3.0.js" -); -importScripts( - "https://unpkg.com/workbox-routing@1.3.0/build/importScripts/workbox-routing.prod.v1.3.0.js" -); - -const assetRoute = new workbox.routing.RegExpRoute({ - regExp: new RegExp("^/assets/img/*"), - handler: new workbox.runtimeCaching.CacheFirst(), -}); - -const router = new workbox.routing.Router(); -//router.addFetchListener(); -router.registerRoutes({ routes: [assetRoute] }); -router.setDefaultHandler({ - handler: new workbox.runtimeCaching.CacheFirst(), -}); - -var CACHE_NAME = "rdp77-cache-v1"; -var urlsToCache = [ - "/", - "/index.html", - "/resume", - "/portfolio", - "/awards", - "/offline.html", - "/assets/img/avatar.png", - "/assets/img/certification/css_sololearn.jpg", - "/assets/img/certification/html_sololearn.jpg", - "/assets/img/certification/lintasarta2.png", - "/assets/img/certification/lintasarta3.png", - "/assets/img/certification/lintasarta4.png", - "/assets/img/certification/php_sololearn.jpg", - "/assets/img/certification/seo_skillacademy.jpg", - "/assets/img/certification/seo_skillacademy1.jpg", - "/assets/img/portfolio/code.png", - "/assets/img/portfolio/network.png", -]; - -self.addEventListener("install", function (event) { - // Perform install steps - event.waitUntil( - caches.open(CACHE_NAME).then(function (cache) { - console.log("Opened cache"); - return cache.addAll(urlsToCache); - }) - ); -}); - -self.addEventListener("fetch", function (event) { - event.respondWith( - caches - .match(event.request) - .then(function (response) { - // Cache hit - return response - if (response) { - return response; - } - - // IMPORTANT: Clone the request. A request is a stream and - // can only be consumed once. Since we are consuming this - // once by cache and once by the browser for fetch, we need - // to clone the response. - var fetchRequest = event.request.clone(); - - return fetch(fetchRequest).then(function (response) { - // Check if we received a valid response - if ( - !response || - response.status !== 200 || - response.type !== "basic" - ) { - return response; - } - - // IMPORTANT: Clone the response. A response is a stream - // and because we want the browser to consume the response - // as well as the cache consuming the response, we need - // to clone it so we have two streams. - var responseToCache = response.clone(); - - caches.open(CACHE_NAME).then(function (cache) { - cache.put(event.request, responseToCache); - }); - - return response; - }); - }) - .catch(function () { - // If both fail, show a generic fallback: - return caches.match("/offline.html"); - // However, in reality you'd have many different - // fallbacks, depending on URL & headers. - // Eg, a fallback silhouette image for avatars. - }) - ); -}); - -self.addEventListener("activate", function (event) { - var cacheAllowlist = CACHE_NAME; - - event.waitUntil( - caches.keys().then(function (cacheNames) { - return Promise.all( - cacheNames.map(function (cacheName) { - if (cacheAllowlist.indexOf(cacheName) === -1) { - return caches.delete(cacheName); - } - }) - ); - }) - ); -});