body,dd,h1,h2,h3,h4,h5,h6,html,li,p,ul {
    margin: 0;
    padding: 0
}

h1,h2,h3,h4,h5,h6 {
    font-size: 100%;
    font-weight: 400
}

ul {
    list-style: none
}

button,input,select {
    margin: 0
}

html {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}

*,:after,:before {
    -webkit-box-sizing: inherit;
    -moz-box-sizing: inherit;
    box-sizing: inherit
}

img,video {
    height: auto;
    max-width: 100%
}

details,footer,header,main,nav,section {
    display: block
}

video {
    display: inline-block
}

[hidden] {
    display: none
}

html {
    font-family: sans-serif;
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%
}

body {
    margin: 0
}

a:focus {
    outline: thin dotted
}

a:active,a:hover {
    outline: 0
}

h1 {
    font-size: 2em;
    margin: .67em 0
}

b,strong {
    font-weight: 700
}

mark {
    background: #ff0;
    color: #000
}

sub {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline
}

sub {
    bottom: -.25em
}

img {
    border: 0
}

button,input,select {
    font-family: inherit;
    font-size: 100%;
    margin: 0
}

button,input {
    line-height: normal
}

button,select {
    text-transform: none
}

button,html input[type=button],input[type=reset],input[type=submit] {
    -webkit-appearance: button;
    cursor: pointer
}

button[disabled],html input[disabled] {
    cursor: default
}

input[type=checkbox],input[type=radio] {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    padding: 0
}

input[type=search] {
    -webkit-appearance: textfield;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    box-sizing: content-box
}

input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration {
    -webkit-appearance: none
}

button::-moz-focus-inner,input::-moz-focus-inner {
    border: 0;
    padding: 0
}

*,::after,::before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box
}

html {
    background: #fff
}

body {
    font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
    min-height: 100vh;
    color: #57585c;
    color: var(--color-text);
    background-color: #fff;
    background-color: var(--color-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

.js body {
    opacity: 0;
    -webkit-transition: opacity .3s;
    -o-transition: opacity .3s;
    transition: opacity .3s
}

.js .loading::before {
    content: "";
    position: fixed;
    z-index: 100000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-bg)
}

.js .loading::after {
    content: "";
    position: fixed;
    z-index: 100000;
    top: 50%;
    left: 50%;
    width: 60px;
    height: 60px;
    margin: -30px 0 0 -30px;
    pointer-events: none;
    border-radius: 50%;
    opacity: .4;
    background: var(--color-link);
    -webkit-animation: loaderAnim .7s linear infinite alternate forwards;
    animation: loaderAnim .7s linear infinite alternate forwards
}

@-webkit-keyframes loaderAnim {
    to {
        opacity: 1;
        -webkit-transform: scale3d(.5,.5,1);
        transform: scale3d(.5,.5,1)
    }
}

@keyframes loaderAnim {
    to {
        opacity: 1;
        -webkit-transform: scale3d(.5,.5,1);
        transform: scale3d(.5,.5,1)
    }
}

a {
    text-decoration: none;
    color: var(--color-link);
    outline: 0
}

a:focus,a:hover {
    color: var(--color-link-hover);
    outline: 0
}

.hidden {
    position: absolute;
    overflow: hidden;
    width: 0;
    height: 0;
    pointer-events: none
}

.message {
    position: relative;
    z-index: 100;
    display: none;
    text-align: center;
    line-height: 1.4;
    background: var(--color-bg);
    color: var(--color-link);
    padding: 2em 2em 1em
}

.icon {
    display: block;
    width: 1.5em;
    height: 1.5em;
    margin: 0 auto;
    fill: currentColor
}

main {
    position: relative;
    width: 100%
}

.content {
    position: relative;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    margin: 0 auto;
    min-height: 100vh
}

.info {
    margin: 0 0 0 1.25em;
    color: var(--color-info)
}

.demo {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    line-height: 1;
    margin: 0 12px;
    color: var(--color-link);
    -webkit-transition: color .2s ease;
    -o-transition: color .2s ease;
    transition: color .2s ease;
    height: 24px;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

.demo span {
    -webkit-transition: color .2s ease;
    -o-transition: color .2s ease;
    transition: color .2s ease
}

a.demo--current span {
    color: var(--color-text)
}

.demo span {
    white-space: nowrap
}

a.demo--current {
    pointer-events: none
}

@media screen and (max-width: 55em) {
    .info {
        margin:0
    }
}

@media screen and (min-width: 55em) {
    .demo span {
        line-height:1
    }
}

@media (pointer: coarse) {
    .message {
        display:-webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        height: 95vh;
        width: 100%;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        text-align: center
    }

    .demo-2 .message {
        background: 0 0
    }

    .arrow-cursor,.circle-cursor,.cursor-wrapper {
        display: none!important
    }
}

@media (pointer: coarse) and (min-width:55em) {
    .message {
        position:absolute;
        left: 0;
        top: 0;
        padding: 0
    }
}

/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
@-webkit-keyframes clockwise {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@keyframes clockwise {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    100% {
        -webkit-transform: rotate(360deg);
        transform: rotate(360deg)
    }
}

@-webkit-keyframes donut-rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    50% {
        -webkit-transform: rotate(-140deg);
        transform: rotate(-140deg)
    }

    100% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }
}

@keyframes donut-rotate {
    0% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }

    50% {
        -webkit-transform: rotate(-140deg);
        transform: rotate(-140deg)
    }

    100% {
        -webkit-transform: rotate(0);
        transform: rotate(0)
    }
}

.demo-1 {
    --color-text: #fff;
    --color-bg: #171717;
    --color-link: #19caff;
    --color-link-hover: #19caff;
    --color-info: #19caff
}

.demo-1,.demo-1 a {
    cursor: none!important
}

.demo-1 .grid {
    position: absolute;
    padding: -webkit-calc(1.5em + 42px + 1.5em) 1.5em;
    padding: calc(1.5em + 42px + 1.5em) 1.5em;
    width: 100vw;
    height: 100vh;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    overflow: hidden
}

.demo-1 .grid img {
    max-width: 100%;
    height: auto;
    line-height: 0;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: opacity .3s ease;
    -o-transition: opacity .3s ease;
    transition: opacity .3s ease
}

.demo-1 .grid__inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-align-content: flex-start;
    -ms-flex-line-pack: start;
    align-content: flex-start;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-transition: opacity .2s ease;
    -o-transition: opacity .2s ease;
    transition: opacity .2s ease;
    width: 100%
}

.demo-1 .grid__item {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 -webkit-calc(97% * 2 / 5);
    -ms-flex: 0 0 calc(97% * 2 / 5);
    flex: 0 0 calc(97% * 2 / 5);
    line-height: 0;
    margin-bottom: 3%
}

.demo-1 .grid__item:nth-child(3),.demo-1 .grid__item:nth-child(4) {
    margin-bottom: 0
}

.demo-1 .grid__item a {
    display: block;
    height: 0;
    padding-top: 100%;
    position: relative;
    background-color: #1d1d1d
}

.demo-1 .cursor-wrapper {
    position: fixed;
    opacity: 1;
    width: 100px;
    height: 100px;
    left: -50px;
    top: -50px;
    -webkit-transform: translate(-100%,-100%);
    -ms-transform: translate(-100%,-100%);
    transform: translate(-100%,-100%);
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    z-index: 1600000;
    pointer-events: none
}

@supports (-ms-ime-align:auto) {
    .demo-1 .cursor-wrapper.has-blend-mode.is-outside .custom-cursor__outer {
        border-color: #000
    }

    .demo-1 .cursor-wrapper.has-blend-mode.is-outside .custom-cursor__inner:after,.demo-1 .cursor-wrapper.has-blend-mode.is-outside .custom-cursor__inner:before {
        background: #000
    }
}

.demo-1 .custom-cursor {
    position: relative;
    left: 0;
    top: 0
}

.demo-1 .custom-cursor__outer {
    width: 6px;
    height: 6px;
    border: 2px solid #fff;
    background: #fff;
    border-radius: 50%
}

.demo-1 .custom-cursor__inner {
    position: relative;
    width: 100%;
    height: 100%
}

.demo-1 .custom-cursor__inner:after,.demo-1 .custom-cursor__inner:before {
    content: "";
    position: absolute;
    width: 40%;
    height: 1px;
    background: #fff;
    -webkit-transition: -webkit-transform .1s linear;
    transition: -webkit-transform .1s linear;
    -o-transition: transform .1s linear;
    transition: transform .1s linear;
    transition: transform .1s linear,-webkit-transform .1s linear
}

.demo-1 .custom-cursor__inner:before {
    left: 50%;
    top: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%)
}

.demo-1 .custom-cursor__inner:after {
    left: 50%;
    top: 50%;
    -webkit-transform: translateX(-50%) rotate(-90deg);
    -ms-transform: translateX(-50%) rotate(-90deg);
    transform: translateX(-50%) rotate(-90deg)
}

@media (pointer: coarse) {
    .content--demo1,.content--demo2,.content--demo3,.content--demo4,.content--demo5 {
        display:none!important
    }
}

.demo-2 {
    --color-text: #919191;
    --color-bg: #e4dfdd42;
    --color-link: #000000;
    --color-link-hover: #000000;
    --color-info: #000000;
    --swiper-height: 65vh
}

.demo-2 .grid {
    position: absolute;
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

.demo-2 .grid img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: opacity .3s ease;
    -o-transition: opacity .3s ease;
    transition: opacity .3s ease
}

.demo-2 .swiper-container {
    width: 100%;
    height: var(--swiper-height);
    overflow: hidden
}

.demo-2 .swiper-container .swiper-wrapper {
    width: 100%
}

.demo-2 .swiper-container .swiper-slide {
    width: auto;
    background-color: #eaeaea;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    position: relative;
    width: 0;
    padding-left: -webkit-calc(var(--swiper-height)/ 2 * 3);
    padding-left: calc(var(--swiper-height)/ 2 * 3)
}

.demo-2 .swiper-container .swiper-slide__img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover
}

.demo-2 .swiper-button-next {
    width: 50%;
    height: 100%;
    margin-top: 0;
    top: 0;
    background-image: none;
    cursor: pointer
}

.demo-2 .swiper-button-next {
    right: 0
}

.demo-2 .arrow-cursor {
    width: 150px;
    height: 110px;
    position: fixed;
    left: -75px;
    top: -55px;
    z-index: 10000000;
    pointer-events: none
}

.demo-2 .arrow-cursor__icon {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%
}

.demo-3 {
    --color-text: #aaf77b;
    --color-bg: #000;
    --color-line: #000;
    --color-link: #000;
    --color-link-hover: #000;
    --color-info: #000;
    z-index: 1000000000000000000000
}

.demo-3,.demo-3 a {
    cursor: none
}

.demo-3 .circle-cursor {
    position: fixed;
    left: 0;
    top: 0;
    pointer-events: none;
    border-radius: 50%
}

.demo-3 .circle-cursor--outer {
    width: 30px;
    height: 30px;
    border: 4px solid #000;
    z-index: 12000;
    opacity: .2
}

.demo-3 .circle-cursor--inner {
    width: 5px;
    height: 5px;
    left: -2.5px;
    top: -2.5px;
    z-index: 11000;
    background: var(--color-text)
}

.demo-3 .grid {
    position: absolute;
    padding: -webkit-calc(1.5em + 42px + 1.5em) 1.5em;
    padding: calc(1.5em + 42px + 1.5em) 1.5em;
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

.demo-3 .grid__inner {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 100%
}

.demo-4 {
    --color-text: #fff;
    --color-bg: #171717;
    --color-line: #292929;
    --color-link: #ff0000;
    --color-link-hover: #ff0000;
    --color-info: #ff0000
}

.demo-4,.demo-4 a {
    cursor: none
}

.demo-4 .circle-cursor {
    position: fixed;
    left: 0;
    top: 0;
    pointer-events: none
}

.demo-4 .circle-cursor--outer {
    width: 100vw;
    height: 100vh;
    z-index: 12000
}

.demo-4 .circle-cursor--inner {
    width: 5px;
    height: 5px;
    left: -2.5px;
    top: -2.5px;
    border-radius: 50%;
    z-index: 11000;
    background: var(--color-text)
}

.demo-4 .grid {
    position: absolute;
    padding: -webkit-calc(1.5em + 42px + 1.5em) 1.5em;
    padding: calc(1.5em + 42px + 1.5em) 1.5em;
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center
}

.demo-4 .grid__inner {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: 100%
}

.demo-5 {
    --color-text: #fff;
    --color-bg: #171717;
    --color-line: #464646;
    --color-link: #2edf16;
    --color-link-hover: #2edf16;
    --color-info: #2edf16;
    --image-height: 55vh;
    --cursor-width: 22px;
    --link-width: 35px;
    cursor: none!important
}

.demo-5 a {
    cursor: none
}

.demo-5 .grid img {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    -webkit-transition: opacity .3s ease;
    -o-transition: opacity .3s ease;
    transition: opacity .3s ease
}

.demo-5 .grid__inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center
}

.demo-5 .grid__inner .image-wrapper {
    width: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin-bottom: 40px
}

.demo-5 .grid__inner .image-wrapper__inner {
    height: var(--image-height);
    width: 0;
    padding-left: -webkit-calc(var(--image-height) * 3 / 2);
    padding-left: calc(var(--image-height) * 3 / 2);
    background: #2b2b2b;
    position: relative
}

.demo-5 .grid__inner .image-wrapper__img {
    opacity: 0;
    -webkit-transition: none;
    -o-transition: none;
    transition: none
}

.demo-5 .grid__inner .nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    width: auto
}

.demo-5 .grid__inner .nav__link {
    display: -webkit-inline-box;
    display: -webkit-inline-flex;
    display: -ms-inline-flexbox;
    display: inline-flex;
    width: var(--link-width);
    height: var(--link-width);
    border: 1px solid var(--color-line);
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    letter-spacing: 2px;
    font-size: .8em;
    color: var(--color-line);
    -webkit-transition: none;
    -o-transition: none;
    transition: none
}

.demo-5 .grid__inner .nav__link:not(:last-child) {
    border-right: 0
}

.demo-5 .grid__inner .nav__link.is-active,.demo-5 .grid__inner .nav__link:hover {
    color: var(--color-link)
}

.demo-5 .grid__inner .nav__link.is-active {
    border: 1px solid var(--color-link)
}
