/*  

	Author : Moskva Yigit
	Author URI : http://www.moskvayigit.com/

	Table of Contents
	- Diagonal Media
	- Splitting
	- On Scroll Morph
	- Grid Hover Motion
	- Tilt Image
	 
*/

*,
*::after,
*::before {
	box-sizing: border-box;
}

.ki-description{width:100%;}

/*----------------------------
	.-- Diagonal Media
-----------------------------*/

.bundle-4-in-1--container {
	margin: 0;
	overflow: hidden;
}

.slides--di {
	width: 100vw;
	height: 100vw;
	overflow: hidden;
	position: relative;
	display: flex;
    align-items: center;
    padding-top: 7rem;
    min-height: 700px;
}

.dark .slides--di{
	color: #000;
}

.light .slides--di{
	color: #fff;
}

.dark .slides--di__nav svg {
    fill: #000;
    stroke: #000;
}

.light .slides--di__nav svg {
    fill: #fff;
    stroke: #fff;
}

.slides--di {
	display: grid;
	grid-template-rows: 100%;
	grid-template-columns: 100%;
}

.slide--diagonal {
	align-items: center;
    display: flex;
	grid-area: 1 / 1 / 2 / 2;
	opacity: 0;
	pointer-events: none;
	width: 100%;
	justify-content: center;
}

.slide--diagonal--current {
	opacity: 1;
	pointer-events: auto;
}

.slide--diagonal {
	margin: 0 auto;
	height: 100%;
}

.slide--diagonal__img-wrap {
	min-width: 790px;
	width: 100%;
	height: calc(100% - 6rem);
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	align-items: center;
	justify-content: center;
	align-self: center;
	transform: rotate(-22.5deg);
	transform-origin: 50% 50%;
}

.slide--diagonal__img {
	opacity: 0.95;
	flex: none;
	height: 50vh!important;
	display: block;
	background-size: cover;
	background-position: 50% 50%;
}

.slide--diagonal__img--1,
.slide--diagonal__img--4 {
	height: calc(50% + 3rem);
}

.slide--diagonal__img--1,
.slide--diagonal__img--3 {
	margin-right: 1.5rem;
}

.slide--diagonal__img--1,
.slide--diagonal__img--2 {
	margin-bottom: 1.5rem;
}

.slide--diagonal__img--2 {
	align-self: flex-end;
}

.slide--diagonal__img--3 {
	align-self: flex-start;
}

.break {
	flex-basis: 100%;
	height: 0;
}

.slide--diagonal__title {
	margin: 0;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	font-size: 15vw;
	font-size: clamp(2rem, 15vw, 14rem);
	font-weight: 200;
	text-transform: uppercase;
	text-align: center;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.slide--diagonal__title-inner {
	display: block;
	position: relative;
	overflow: hidden;
	display: flex;
}

.slide--diagonal__title-inner span {
	position: relative;
}

.slide--diagonal__title-inner--middle {
	font-size: 2.5rem;
	display: block;
	font-weight: 300;
	text-transform: none;
}

.slides--di__nav {
	position: absolute;
	top: 50%;
	cursor: pointer;
	background: none;
	border: 0;
	width: 90px;
	height: 20px;
	padding: 0;
	margin: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	transition: transform 0.2s ease-out;
}

.slides--di__nav svg {
	display: block;
	width: 100%;
	height: 100%;
}

.slides--di__nav--prev {
	left: 15vw;
}

.slides--di__nav--prev:hover {
	transform: translate3d(-15%, 0, 0);
}

.slides--di__nav--next {
	right: 15vw;
}

.slides--di__nav--next:hover {
	transform: translate3d(15%, 0, 0);
}

@media screen and (min-width: 53em) {
	
	.slides--di {
		padding: 0;
	}
}

/*----------------------------
	.-- Splitting
-----------------------------*/

.splitting .word,
.splitting .char {
    display: inline-block;
}

.splitting .char {
    position: relative;
}

.splitting .char::before,
.splitting .char::after {
    content: attr(data-char);
    position: absolute;
    top: 0;
    left: 0;
    visibility: hidden;
    transition: inherit;
    user-select: none;
}

.splitting {
    --word-center: calc((var(--word-total) - 1) / 2);
    --char-center: calc((var(--char-total) - 1) / 2);
    --line-center: calc((var(--line-total) - 1) / 2);
}

.splitting .word {
    --word-percent: calc(var(--word-index) / var(--word-total));
    --line-percent: calc(var(--line-index) / var(--line-total));
}

.splitting .char {
    --char-percent: calc(var(--char-index) / var(--char-total));
    --char-offset: calc(var(--char-index) - var(--char-center));
    --distance: calc(
        (var(--char-offset) * var(--char-offset)) / var(--char-center)
    );
    --distance-sine: calc(var(--char-offset) / var(--char-center));
    --distance-percent: calc((var(--distance) / var(--char-center)));
}

.splitting.cells img {
    width: 100%;
    display: block;
}

@supports (display: grid) {
    .splitting.cells {
        position: relative;
        overflow: hidden;
        background-size: cover;
        visibility: hidden;
    }

    .splitting .cell-grid {
        background: inherit;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: grid;
        grid-template: repeat(var(--row-total), 1fr) / repeat(
                var(--col-total),
                1fr
            );
    }

    .splitting .cell {
        background: inherit;
        position: relative;
        overflow: hidden;
    }

    .splitting .cell-inner {
        background: inherit;
        position: absolute;
        visibility: visible;
        width: calc(100% * var(--col-total));
        height: calc(100% * var(--row-total));
        left: calc(-100% * var(--col-index));
        top: calc(-100% * var(--row-index));
    }

    .splitting .cell {
        --center-x: calc((var(--col-total) - 1) / 2);
        --center-y: calc((var(--row-total) - 1) / 2);
        --offset-x: calc(var(--col-index) - var(--center-x));
        --offset-y: calc(var(--row-index) - var(--center-y));
        --distance-x: calc(
            (var(--offset-x) * var(--offset-x)) / var(--center-x)
        );
        --distance-y: calc(
            (var(--offset-y) * var(--offset-y)) / var(--center-y)
        );
    }
}

/*----------------------------
	.-- On-Scroll Morph
-----------------------------*/

.morph--light,
.morph--dark {
    overflow: hidden;
}

.morph--light{
	color:#fff;
}

.morph--dark{
	color:#000;
}

.content-morph-wrap {
	margin: 0;
	color: #fff;
	font-family: sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.intro--morph {
	height: calc(100vh - 3rem);
	padding-top: 10vh;
    text-align: center;
    place-items: center;
    display: grid;
    grid-template-areas: 'intro';
    margin-bottom: 80vh;
}

.intro--morph__title {
	grid-area: intro;
    place-items: center;
    margin: 0;
    display: grid;
    position: relative;
    z-index: 100;
}

.intro--morph__title-pre {
    font-size: clamp(2rem,10vw,5rem);
    font-weight: 400;
}

.intro--morph__title-sub {
    font-size: 1.5rem;
    margin: 1rem 0;
}

.content-morph-wrap {
	display: grid;
	gap: 40vh;
	margin-bottom: 40vh;
}

.content-morph {
	flex: none;
	display: grid;	
	place-items: center;
	line-height: 1.2;
	grid-template-areas: 'title' 'layout' '...';
	grid-template-rows: 3.5vw auto 3.5vw;
	gap: 1rem;
}

.content--intro {
	grid-area: intro;
}

.content_morph__img-wrap {
	grid-area: layout;
}

.content_morph__img {
	--img-width: 60vw;
	--img-height: 40vh;
	--img-ar: auto;
	--img-inner-margin-x: 0px;
	--img-inner-margin-y: 0px;
	position: relative;
	overflow: hidden;
	display: grid;
	place-items: center;
	width: var(--img-width);
	height: var(--img-height);
	aspect-ratio: var(--img-ar);
}

.content_morph__img--1 {
	--img-width: 70vw;
	--img-height: auto;
	--img-ar: 16/8;
}

.content_morph__img--2 {
	--img-width: 100vw;
	--img-height: 100vh;
}

.content_morph__img--3 {
	--img-width: 100vw;
	--img-height: 200vh;
}

.content_morph__img--4 {
	--img-width: 40vw;
	--img-height: auto;
	--img-ar: 0.8;
}

.content_morph__img--5 {
	--img-width: 60vw;
	--img-height: auto;
	--img-ar: 1;
}

.content_morph__img--6 {
	--img-width: 70vw;
	--img-height: auto;
	--img-ar: 16/8;
}

.content_morph__img-inner {
	grid-area: 1 / -1;
	width: calc(100% + var(--img-inner-margin-x) * 2);
	height: calc(100% + var(--img-inner-margin-y) * 2);
	background-size: cover;
	background-position: 50% 50%;
}

.content_morph__img-inner--hidden {
	opacity: 0;
}

.content_morph__text {
	position: relative;
	z-index: 100;
	grid-area: title;
	font-size: clamp(2rem, 6vw, 4rem);
	margin: 0;
	display: flex;
	flex-direction: column;
	font-weight: 400;
	line-height: 0.8;
}

.content_morph__text span span {
	display: inline-block;
}

.content_morph__text span span.whitespace {
	white-space: pre;
}

.content_morph__text--large {
	font-size: clamp(2rem, 7vw, 6rem);
}

.content_morph__text--center {
	text-align: center;
	align-self: stretch;
	justify-content: space-between;
	grid-row: 1 / span 3;
}

.content_morph__text--left {
	justify-self: start;
	padding: 3rem;
	grid-area: layout;
	align-self: center;
}

.content_morph__text-tiny {
	text-transform: none;
	font-family: sans-serif;
	font-size: 1.5rem;
	font-weight: 300;
	max-width: 400px;
	line-height: 1.2;
	margin-top: 10vh;
}

@media screen and (min-width: 53em) {

	.content_morph__img--4 {
		--img-width: 30vw;
	}

	.content_morph__img--5 {
		--img-width: 40vw;
	}

}

/*----------------------------
	.-- Grid Hover Motion
-----------------------------*/

.dark .content__title,
.dark .content__title-sub{
	color: var(--wp--preset--color--black);
}

.light .content__title,
.light .content__title-sub{
	color: var(--wp--preset--color--white);
}

.no-select {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.grid--hover--motion {
	height: 100%;
	width: 100%;
	position: relative;
	overflow: hidden;
}

.grid-hover-motion-hover-content {
	display: flex;
	flex-direction: column;
	width: 100vw;
	height: calc(100vh - 13rem);
	position: relative;
	align-items: center;
	justify-content: center;
	max-height: 300px;
	overflow: hidden;
}

.grid-hover-motion {
	pointer-events: none;
	position: absolute;
	width: 110%;
	height: 110%;
	top: -5%;
	left: -5%;
	display: grid;
	grid-template-columns: repeat(50,2%);
	grid-template-rows: repeat(50,2%);
}

.grid-hover-motion__item {
	position: relative;
}

.grid-hover-motion--img .grid-hover-motion__item {
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	will-change: transform;
}

.grid-hover-motion__item-img {
	position: relative;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: 50% 50%;
}

.grid-hover-motion--img .grid-hover-motion__item-img {
	flex: none;
	width: calc(100% + 100px);
	height: calc(100% + 100px);
	will-change: transform;
}

.pos-1 {
	grid-area: 10 / 1 / 26 / 7;
}

.pos-2 {
	grid-area: 1 / 18 / 9 / 27;
}

.pos-3 {
	grid-area: 1 / 36 / 14 / 42;
}

.pos-4 {
	grid-area: 13 / 11 / 32 / 18;
}

.pos-5 {
	grid-area: 17 / 32 / 32 / 38;
}

.pos-6 {
	grid-area: 20 / 46 / 28 / 51;
}

.pos-7 {
	grid-area: 43 / 1 / 51 / 10;
}

.pos-8 {
	grid-area: 38 / 14 / 46 / 22;
}

.pos-9 {
	grid-area: 40 / 26 / 51 / 32;
}

.pos-10 {
 	grid-area: 37 / 39 / 48 / 47;
}

.grid-hover-motion-content .content__title {
	font-weight: 400;
	font-size: 5vw;
	margin: 0;
	line-height: 1;
	position: relative;
	text-align: center;
	height: 100%;
	display: grid;
    align-items: center;
    align-content: center;
	max-width: 100%;
}

.grid-hover-motion-content .content__title-sub {
	font-size: 2.5vw;
	display: block;
	line-height: 0.5;
}

@media screen and (min-width: 53em) {
	.grid-hover-motion-content {
		height: 100vh;
		justify-content: center;
		max-height: none;
	}
}

/*----------------------------
	.-- Tilt Image
-----------------------------*/

.tilter {
	display: block;
	position: relative;
	width: 300px;
	/*height: 415px;*/
	margin: 1.5em 2.5em;
	color: #fff;
	flex: none;
	perspective: 1000px;
}

.tilter * {
	pointer-events: none;
}

.tilter:hover,
.tilter:focus {
	color: #fff;
	outline: none;
}

/*
.tilter__figure,
.tilter__deco,
.tilter__caption {
	will-change: transform;
}*/

.tilter__figure,
.tilter__image {
	margin: 0;
	width: 100%;
	height: 100%;
	display: block;
}

.tilter__figure > * {
	transform: translateZ(0px); /* Force correct stacking order */
}

.smooth .tilter__figure,
.smooth .tilter__deco--overlay,
.smooth .tilter__deco--lines,
.smooth .tilter__deco--shine div,
.smooth .tilter__caption {
	transition: transform 0.2s ease-out;
}

.tilter__figure {
	position: relative;
}

.tilter__figure::before {
	content: '';
	position: absolute;
	width: 90%;
	height: 90%;
	top: 5%;
	left: 5%;
	box-shadow: 0 30px 20px rgba(35,32,39,0.5);
}

.tilter__deco {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.tilter__deco--overlay {
	background-image: linear-gradient(45deg, rgba(226, 60, 99, 0.4), rgba(145, 58, 252, 0.4), rgba(16, 11, 192, 0.4));
}

.tilter__deco--shine div {
	position: absolute;
	width: 200%;
	height: 200%;
	top: -50%;
	left: -50%;
	background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.5) 0%, rgba(255, 255, 255, 0.25) 50%, transparent 100%);
}

.tilter__deco--lines {
	fill: none;
	stroke: #fff;
	stroke-width: 1.5px;
}

.tilter__caption {
	position: absolute;
	bottom: 0;
	width: 100%;
	padding: 4em;
}

.tilter__title {
	margin: 0;
	font-weight: normal;
	font-size: 2.5em;
	line-height: 1;
}

.tilter__description {
	margin: 1em 0 0 0;
	font-size: 0.85em;
	letter-spacing: 0.15em;
}

/* Individual styles */

/* Example 1 (Default) */
.tilter--1 .tilter__figure::before {
	box-shadow: 0 30px 20px rgba(0,0,0,0.5);
}

/* Example 2 (thicker lines, overlay) */
.tilter--2,
.tilter--2:hover,
.tilter--2:focus {
	color: #2e27ad;
}

.tilter--2 .tilter__deco--overlay {
	background-image: linear-gradient(45deg, rgba(245, 239, 40, 0.6), rgba(164, 22, 169, 0.6));
}

.tilter--2 .tilter__deco--lines {
	stroke: #2e27ad;
	stroke-width: 4px;
}

/* Example 3 (no lines, overlay hard-light) */
.tilter--3 .tilter__deco--overlay {
	background-image: linear-gradient(45deg, rgba(205, 81, 220, 0.6), rgba(41, 94, 230,0.5));
}

.tilter--3 .tilter__caption {
	padding: 2em;
	text-align: right;
	text-shadow: 0.1em 0.8em 1em rgba(0,0,0,0.35);
}

/* Example 4 (caption sliding in) */
.tilter--4 .tilter__deco--overlay {
	background-image: linear-gradient(20deg, rgb(214, 100, 40), rgba(46, 39, 173, 0.58), rgba(53, 74, 165, 0.6));
}

@media screen and (min-width: 30em) {
	.tilter--4 .tilter__deco--lines {
		transform: scale3d(0.8,0.8,1);
		transition: transform 0.4s;
	}
	.tilter--4:hover .tilter__deco--lines {
		transform: scale3d(1,1,1);
	}
	.tilter--4 .tilter__title,
	.tilter--4 .tilter__description {
		transform: translate3d(0,80px,0);
		opacity: 0;
		transition: transform 0.4s, opacity 0.4s;
	}
	.tilter--4:hover .tilter__description {
		transition-delay: 0.1s;
	}
	.tilter--4:hover .tilter__title,
	.tilter--4:hover .tilter__description {
		transform: translate3d(0,0,0);
		opacity: 1;
	}
}

/* Example 5 (line animating) */
.tilter--5 .tilter__deco--lines path {
	stroke-dasharray: 1270;
	stroke-dashoffset: 1270;
	transition: stroke-dashoffset 0.7s;
}

.tilter--5:hover .tilter__deco--lines path {
	stroke-dashoffset: 0;
}

.tilter--5 .tilter__figure::before {
	box-shadow: none;
}

/* Example 6 (different line position) */
.tilter--6,
.tilter--6:hover,
.tilter--6:focus {
	color: #2e27ad;
}

.tilter--6 .tilter__deco--overlay {
	background-image: linear-gradient(45deg, rgba(46, 39, 173, 0.2), rgba(255, 186, 59, 0.58));
}

.tilter--6 .tilter__deco--lines {
	stroke: #2e27ad;
	stroke-width: 6px;
	top: -50px;
	left: -50px;
}

.tilter--6 .tilter__caption {
	padding: 0 4em 5.5em 1em;
}

.tilter--6 .tilter__figure::before {
	box-shadow: none;
}

/* Example 7 (different line) */
.tilter--7 .tilter__deco--overlay {
	background-image: linear-gradient(45deg, rgba(93, 203, 106, 0.48), rgba(59, 239, 255, 0.58));
}

.tilter--7 .tilter__deco--lines {
	stroke-width: 20px;
	transform: scale3d(0.9,0.9,1);
	opacity: 0;
	transition: transform 0.3s, opacity 0.3s;
}

.tilter--7:hover .tilter__deco--lines {
	opacity: 1;
	transform: scale3d(1,1,1);
}

.tilter--7 .tilter__figure::before {
	box-shadow: none;
}

/* Example 8 (different line) */
.tilter--8 {
	perspective: none;
}

.tilter--8 .tilter__figure {
	transform-style: flat;
}

.tilter--8 .tilter__deco--lines {
	stroke: #9255ae;
	stroke-width: 6px;
	mix-blend-mode: color-burn;
}

.tilter--8 .tilter__caption {
	color: #9255ae;
	mix-blend-mode: color-burn;
}

.tilter--8 .tilter__figure::before {
	box-shadow: none;
}
