@charset "utf-8";

/* reset */
* {margin: 0;padding: 0;}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, tbody, tfoot, thead, tr, th, td{margin:0;padding:0;}
a {color: inherit; text-decoration: inherit;}
li {list-style: none;}
address, em, i {font-style: normal;}
button {background: none; border: none;}
img {vertical-align: middle;}

/* layout */
.body {background: #fff; color: #000;}
.wrap {position: relative; overflow: hidden;}
.en {font-family: 'Neulis Sans';font-weight: 300;}
.en_s {font-family: 'PP Editorial New'; font-weight: 300;}
.kr {font-family: 'Pretendard'; font-size: 1vw; font-weight: 100; color: #888; letter-spacing: -0.05vw; line-height: 1.6;}

/* btnBox */
.button_container {width: 9.16vw; margin: 0 auto;}
.button1 {overflow: hidden; position: relative;display: inline-block;border-radius: 2.6vw;}
.button_circle {background-color: #000;border-radius: 50%;position: absolute;left: 50%; top: 50%; transform: translate(-50%, -50%); width: 0; height: 0;pointer-events: none;}
.moreBtn {padding: 0.5vw 1vw;color: #fff;background: #000;font-size: 0.83vw;border: none;border-radius: 2.6vw;text-align: center;cursor: pointer;box-sizing: border-box;font-family: 'Neulis Sans';font-weight: 300;z-index: 100000;transition: 0.4s;text-decoration: none;display: inline-block;}
.moreBtn:hover {color: #000;}
.text_container {position: relative; z-index: 10000;}
.explode-circle {animation: explode 0.5s forwards;}
.desplode-circle {animation: desplode 0.5s forwards;}
@keyframes explode {
    0% {width: 0;height: 0;background: #888;}
    100% {width: 400px; height: 400px;background: #fff;border-radius: 50%;}
}

@keyframes desplode {
    0% {width: 400px;height: 400px;background: #fff;border-radius: 50%;}
    100% {width: 0;height: 0;background-color: #888;border-radius: 50%;}
}

/* cursor */
.cursor {position: fixed; width: 20px; height: 20px; border-radius: 50%; background: #000; transition: transform 0.1s; transform: translate(-50%, -50%); pointer-events: none; mix-blend-mode: difference ; z-index: 100;}
.body:hover ~ .cursor {transform: scale(2);}


/* ---------- header ---------- */
header {width: 100%; height: 60px; position: fixed; z-index: 100; }
header .innerHeader{width: 98vw;height: 100%; display: flex; justify-content: space-between; align-items: center;}

header .innerHeader .gnb{width: 23vw; height: 100%; border-radius: 0 0 1.5vw 0; background-color: #000; display: flex; justify-content: space-between; align-items: center; position: relative;transition: background-color 0.3s; z-index: 95;}
header .innerHeader .gnb .logo{width: 30%; overflow: visible; margin-left: 1.2vw; z-index: 95;}
header .innerHeader .resume {font-size: 20px;color: black; z-index: 10;}

.logo-link {display: block;width: 108px; height: 22px; background-image: url('../img/logo_black.png');background-size: contain;background-repeat: no-repeat;}

/* .box 또는 footer에 진입 시 적용될 클래스 */
.header-alternate .logo-link {
    background-image: url('../img/logo_black.png'); /* 대체 로고 이미지 */
}

.gnbList {display: block; position: absolute; top: 0; left: 0; width: 100%; background: #000; opacity: 1;transform: translateY(-600px); z-index: 90;padding: 6vw 1.2vw 2vw;box-sizing: border-box;transition: all ease-in-out 0.5s;border-radius: 0 0 1.5vw 0;font-weight: 100;}

.gnbList.on {display: block; opacity: 1; transform: translateY(0px);}
.gnbList li {padding-bottom: 0.5vw;}
.gnbList li:hover {color: #888; transition: all 0.3s;}


/* 흰색 배경일 때 적용될 스타일 */
.white-bg .gnb, .white-bg .gnbList {background: #000; color: #fff;}
.white-bg .logo-link {background-image: url('../img/logo_white.png');}
.white-bg .menuOpen span {background: #000;}

/* 검은색 배경일 때 적용될 스타일 */
.black-bg .gnb, .black-bg .gnbList {background: #fff;color: #000;}
.black-bg .logo-link {background-image: url('../img/logo_black.png');}
.black-bg .menuOpen span {background-color: #000;}

/* header.active */
header.active {transform: translateY(-100%); transition: all 0.3s;}


/* ---------- menuOpen ------------ */
.menuOpen {cursor: pointer;display: block;position: relative;width: 24px;height: 18px;right: 1.4vw;top: 0%;z-index: 110;}
.menuOpen span {background: #fff;height: 2px;width: 100%;position: absolute;transition: transform 0.3s, background 0.3s;left: 0;stroke-linecap: round;}
.menuOpen .a { top: 0; }
.menuOpen .b { top: 50%; transform: translateY(-50%);}  
.menuOpen .c { bottom: 0; } 

.menuOpen.on .a {transform: rotate(45deg) translate(6px, 6px);}
.menuOpen.on .b {opacity: 0;}
.menuOpen.on .c {transform: rotate(-45deg) translate(6px, -6px);}
/* ---------------------- */



/* ---------- visual ---------- */
.visual {width: 100%; margin: 0 auto 5.2vw; position: relative;}
.visual .inner {width: 91.67vw; margin: 0 auto;}
.visual .mainTit {margin: 12.71vw auto 0; width: 90%; text-align: center; display: block;}
.visual .mainTit h3 {font-size: 4vw;}
.visual .mainTit .title {width: 56vw; margin: -72px auto 0; overflow: hidden;}
.visual .mainTit .title img {width: 100%; height: 100%; animation: fade-in 1s linear .8s forwards;}
@keyframes fade-in {
    0% {opacity: 0; transform: translateY(10%);}
    30% {opacity: 0; transform: translateY(10%);}
    100% {opacity: 1;transform: translateY(0%);}
}

.visual .img {display: block; width: 17.34vw; margin: -4vw auto 12.71vw; padding-left: 5.5vw; animation: imgAni;}
.visual .img img {width: 100%; height: 100%;}
@keyframes imgAni {
    0% {filter: blur(50%); opacity: 0;}
}

.visual .visualBox {display: flex; position: relative; margin: 20vw 0 ;justify-content: flex-start;}
.visual h3 {font-size: 1.87vw; font-weight: 300;}
.visual .Txt {display: block;}
.visual .Txt .txt {padding-left: 12.5vw; font-size: 2vw; position: relative; color: #000;font-weight: 300;}
.visual .Txt > .txt .keyword {font-style: italic; font-weight: 100;}
.visual .Txt > .txt .keyword:after {content: ''; height: 0.1vw; background: #000; position: absolute; bottom: 2%; left: 24.5%; transition: all 0.4s; width: 0;}
.visual .Txt > .txt .keyword:hover:after {width: 53vw;}
.visual .Txt > .txt .lion {border: 0.1vw solid #000; border-radius: 1.4vw; font-size: 1.7vw; padding: 0 1.1vw; transition-delay: 1s; transition: all 0.9s;}
.visual .Txt > .txt .lion:hover {background: #000;transition: all 0.3s; cursor: pointer; color: #fff;}
.visual .Txt .txt:nth-child(2) {font-size: 1.2vw; font-weight: 100; letter-spacing: -0.05vw; color: #888; margin: 2vw 0 2.5vw; line-height: 1.6;}
.visual .Txt .btnBox {padding-left: 12.5vw; position: absolute;}

.visual .svgAni1 {position: absolute; width: 29.73vw; top: 17%; right: 32%;}
.visual .svgAni1.motion .path1 {stroke-dasharray: 2250; stroke-dashoffset: 2250; animation: ani1 2s linear forwards;}
@keyframes ani1 {
    0%{stroke-dashoffset: 2250;}
    100%{stroke-dashoffset: 0;}
}
.visual .svgAni1.motion .line1 {stroke-dasharray: 10; stroke-dashoffset: 10; animation: ani1_1 .5s linear forwards;}
@keyframes ani1_1 {
    0%{stroke-dashoffset: 10;}
    100%{stroke-dashoffset: 0;}
}
.visual .svgAni2 {position: absolute; width:10vw; top: 9%; left: 46%;}
.visual .svgAni2.motion .path2 {stroke-dasharray: 140; stroke-dashoffset: 140; animation: ani2 .3s linear 1s forwards;}
@keyframes ani2 {
    0%{stroke-dashoffset: 140;}
    100%{stroke-dashoffset: 0;}
}

/* ---------- about ---------- */
.about .inner {position: relative; }
.about .inner > ul {display: flex; box-sizing: border-box;}
.about .inner > ul li {width: 100vw; box-sizing: border-box; flex-shrink: 0!important;}
.about .box {width: 100%; height: 120vh; padding-top: 15%;}
.about .box:nth-child(1) {background-color: #000; box-sizing: border-box;}
.about .box:nth-child(1) .tit {font-size: 21.87vw; color: #fff; display: block; text-align: center; }
.about .box:nth-child(2) {background-color: #fff; box-sizing: border-box;padding-top: 10%;}
.about .box:nth-child(2) .tit {font-size: 26.04vw; color: #000; display: block; text-align: center; }
.about .box:nth-child(2) .img {width: 14.95vw;margin: -11vw auto 0; }
.about .box:nth-child(2) .img img {width: 100%; height: 100%;}


/* ---------- about.me ---------- */
.about .me {width: 90%; position: relative; margin: 0 auto; text-align: center; padding-bottom: 20.83vw;}
.about .me .img {display: block; width: 20vw; margin: 13vw auto 2.7vw;}
.about .me .img img {width: 100%; height: 100%;}
.about .me .svgAni3 {position: absolute; width: 5vw; top: -1%; left: 37.5%;}
.about .me .svgAni3.motion .path3 {stroke-dasharray: 107; stroke-dashoffset: 107; animation: ani3 .2s linear .2s forwards;}
@keyframes ani3 {
    0%{stroke-dashoffset: 107;}
    100%{stroke-dashoffset: 0;}
}
.about .me .svgAni4 {position: absolute; width: 3.2vw; top: 26.5%; right: 37%;}
.about .me .svgAni4.motion .path4 {stroke-dasharray: 105; stroke-dashoffset: 105; animation: ani4 .3s linear .3s forwards;}
@keyframes ani4 {
    0%{stroke-dashoffset: 105;}
    100%{stroke-dashoffset: 0;}
}
.about .me .svgAni5 {position: absolute; width: 43vw; top: 36.5%; left: 25.8%;}
.about .me .svgAni5.motion .path5 {stroke-dasharray: 406; stroke-dashoffset: 406; animation: ani5 .3s linear .4s forwards;}
@keyframes ani5 {
    0%{stroke-dashoffset: 406;}
    100%{stroke-dashoffset: 0;}
}
.about .me > h3 {font-style: italic; font-size: 3.22vw; font-weight: 300;}
.about .me > p {font-weight: 100; font-size: 3.12vw; margin-bottom: 0.8vw; line-height: 1.1;}
.about .me .txt.kr {font-size: 1vw; letter-spacing: -0.05vw; line-height: 1.6; color: #888; margin: 0 auto 4vw;} 
.about .me .skillBox {display: flex; width: 45%; margin: 0 auto;}
.about .me .skillBox ul {font-weight:100;}
.about .me .skillBox p {font-weight: 100; font-size: 3.12vw; margin-bottom: 0.83vw;}
.about .me .skillBox .strengths li{padding-left: 1vw;}
.about .me .skillBox .strengths li:nth-child(1) {padding-left: 0;}
.about .me ul {margin: 0 6.5vw; }
.about .me ul li {display: flex; font-size: 0.83vw;}
.about .me ul .tit {font-size: 1.87vw; margin: auto 1.56vw 1.56vw; font-weight: 300;}
.about .me ul li .check {width: 1.25vw; height: 1.04vw; display: flex; margin-right: 0.52vw;}
.about .me ul li .check img {width: 100%; height: 100%;}
.about .me .btnBox {position: absolute; bottom: 17%; left: 50%; transform: translate(-50%,-50%);}

.about .me .svgAni6 {position: absolute; width: 10.2vw; bottom: 40%; left: 33%;}
.about .me .svgAni6.motion .path6 {stroke-dasharray: 140; stroke-dashoffset: 140; animation: ani6 .3s linear 1.2s forwards;}
@keyframes ani6 {
    0%{stroke-dashoffset: 140;}
    100%{stroke-dashoffset: 0;}
}
.about .me .svgAni7 {position: absolute; width: 10.2vw; bottom: 40%; right: 31%;}
.about .me .svgAni7.motion .path7 {stroke-dasharray: 212; stroke-dashoffset: 212; animation: ani7 .5s linear 1.4s forwards;}
@keyframes ani7 {
    0%{stroke-dashoffset: 212;}
    100%{stroke-dashoffset: 0;}
}
.about .me .svgAni8 {position: absolute; width: 0.4vw; bottom: 25%; left: 50.1%;}
.about .me .svgAni8.motion .path8 {stroke-dasharray: 152; stroke-dashoffset: 152; animation: ani8 .5s linear 1.6s forwards;}
@keyframes ani8 {
    0%{stroke-dashoffset: 152;}
    100%{stroke-dashoffset: 0;}
}

/* ---------- projects ---------- */
.projects {overflow: visible !important;}
.projects .box {width: 100%; padding: 10vw ;box-sizing: border-box;height: 120vh; }
.projects .box .tit {font-size: 13vw; display: block; text-align: center; line-height: 0.9;}
.projects .box .img {width: 15.62vw; margin: -2.6vw auto 0;}
.projects .box .img img {width: 100%; height: 100%;}

/* ---------- .projects .uiux ---------- */
.projects .uiux {width: 90%; margin: 0 auto; position: relative; margin-bottom: 30vw; } 
.projects .uiux .fix {position: absolute; width: 45%; height: 130vh; top: 0;}
.projects .uiux .fix h2 {font-weight: 300; font-size: 6.8vw; line-height: 6.6vw;margin-top: 4vw; display: block;margin-bottom: 2vw;}
.projects .uiux .fix .txtBox {font-size: 16px; bottom: 10%; width: 95%;}
.projects .uiux .fix .txtBox p {margin-bottom: 1vw; font-size: 1.1vw;}
.projects .uiux .fix .txtBox p:nth-child(3) {font-size: 0.9vw;}
.projects .uiux .fix .txtBox.on {position: fixed; bottom: 50%; transform: translateY(50%);width: 45%;}
.projects .uiux .btnBox {left: 0; margin-top: 1vw; position: absolute;}


.projects .uiuxList {width: 48%; margin-left: auto; flex-direction: column;}
.projects .uiuxList li {margin: 50px 0;height: 35vw; position: relative;}
.projects .uiuxList li:last-child {margin-bottom: 0;}
.projects .uiuxList li a {display: block; width: 100%; height: 100%; border-radius: 10px; overflow: hidden; position: relative;}
.projects .uiuxList li .titBox {position: absolute; width: 100%; background: rgba(0,0,0,0.8); z-index: 10; bottom: 0; align-items: center; font-size: 32px; color: #fff; padding: 1vw; text-align: center; box-sizing:border-box;}

/* .uiuxList.slider */
.swiper-slider {width: 100%; height: 100%; overflow: hidden;}
.slider-image-wrapper {width: 100%; overflow: hidden;}
.slider-item {width: 100%;height: 100%;overflow: hidden; display: flex; flex-shrink: 0; opacity: 1; cursor: grab;}
.slider-image {width: 100%; height: 100%; object-fit: cover; transition: all 0.2s; position: relative; overflow: hidden; }

.slider-buttons {position: absolute; bottom: 0; width: 100%; display: flex;justify-content: space-around; z-index: 100; padding: 1.2vw; box-sizing: border-box;}
.slick-prev, .slick-next {background: none; border: none; cursor: pointer; font-size: 32px; color: #fff;}
.slick-prev:hover, .slick-next:hover {color: #888; transition: all .3s;}


/* ---------- projects.cloneCoding ---------- */
.projects .clone {width: 90%; margin: 0 auto; height:70vw; display: block;}
.projects .clone .titBox {width: 100%; display: block; position: sticky; position: -webkit-sticky; height: auto; top: 20px; z-index: 10;}
.projects .clone .titBox h2 {font-weight: 300; font-size: 6.8vw; text-align: center; line-height: 6.6vw; }
.projects .clone .titBox .txt {text-align: center; margin-top: 1.15vw;font-size: 1.1vw; font-weight: 300;}

/* .clone .cardBox */
.projects .clone .cardBox {margin: 0 auto; width: 74%; position: relative; height: 150vw; overflow: visible;}
.projects .clone .cardBox .cardCon {position: relative;}
.projects .clone .cardBox .cardCon .card {border: 0.15vw solid #000; border-radius: 1.04vw; width: 60vw; height: 20vw; box-sizing: border-box; position: absolute; background: rgba(255, 255, 255, 0.95); top: 0; left:0; margin-top: 2vw; z-index: 1;}

.projects .clone .cardBox .cardCon li:nth-child(2) {top: 2vw; left: 2vw; z-index: 2;}
.projects .clone .cardBox .cardCon li:nth-child(3) {top: 4vw; left: 4vw; z-index: 3;}
.projects .clone .cardBox .cardCon li:nth-child(4) {top: 6vw; left: 6vw; z-index: 4;}
.projects .clone .cardBox .cardCon li:nth-child(5) {top: 8vw; left: 8vw; background: #000; color: #fff; z-index: 5;}
.projects .clone .cardBox .cardCon li:nth-child(5) .cardInner h2 {font-family: 'PP Editorial New'; font-weight: 100; font-size: 3.85vw; display: block; margin: 4vw auto 2vw;}
.projects .clone .cardBox .cardCon li:nth-child(5) .cardInner .btnBox .moreBtn {background: #fff; color: #000;}
.projects .clone .cardBox .cardCon li:nth-child(5) .cardInner .btnBox .moreBtn:hover {background: #888; color: #000;}


.projects .clone .cardBox .card .cardInner {margin: 0 auto; display: flex; justify-content: space-between; padding: 2vw;}
.projects .clone .cardBox .card:nth-child(5) .cardInner {margin: 0 auto; padding: 2.71vw; display: block; text-align: center;}
.projects .clone .cardBox .card .cardInner .cardTxt {width: 55%;}
.projects .clone .cardBox .card .cardInner .cardTxt .subTit {display: flex; justify-content: space-between; font-weight: 600; font-size: 1.04vw; margin-bottom: 3.39vw; }
.projects .clone .cardBox .card .cardInner .cardTxt .tag {display: flex; margin: 2vw 0 1vw;}
.projects .clone .cardBox .card .cardInner .cardTxt .tag li {color: #000; background: #fff; font-size: 0.83vw; border: 0.05vw solid #000; border-radius: 2.6vw; text-align: center; box-sizing: border-box; margin-right: 0.52vw; padding: 0.2vw 0.8vw;}
.projects .clone .cardBox .card .cardInner .tit {font-size: 2.2vw; }
.projects .clone .cardBox .card .cardInner .cardImg {display: block; width: 41%; box-sizing: border-box; }
.projects .clone .cardBox .card .cardInner .cardImg img {width: 100%; height: 100%; z-index: 5; border-radius: 10px;}

/* ---------- projects.ncs ---------- */
.projects .ncs {width: 85%; margin: 0 auto; position: relative; height: 100%;}
.projects .ncs .titBox {width: 95%; display: block;}
.projects .ncs .titBox h2 {font-size: 6.87vw; text-align: end; line-height: 6vw; font-weight: 300;}
.projects .ncs .titBox .txt {font-size: 1.1vw; text-align: end; margin: 1.15vw 0;}

/* ncs .table */
.projects .ncs .table {margin: -3.5vw auto 0; box-sizing: border-box; color: #888; position: relative; height: 30vw;}
.projects .ncs .table .tableInner {width: 63%; border-top: 0.15vw solid #000; border-bottom: 0.15vw solid #000;}
.projects .ncs .table .tableInner li {display: flex; justify-content: space-between; border-bottom: 0.05vw solid #000; position: relative; overflow: hidden; transition: all 0.3s; height: auto; cursor: pointer;}
.projects .ncs .table .tableInner li:nth-child(4) {border-bottom: none}
.projects .ncs .table .tableInner li .tableTxt {padding: 1.5vw; transition: all 0.3s;}
.projects .ncs .table .tableInner li .tableTxt .tit {font-size: 2.3vw;}
.projects .ncs .table .tableInner li .tableTxt .txt {font-size: 0.83vw; color: #888; max-height: 0; overflow: hidden; transition: all 0.2s;}
.projects .ncs .table .tableInner li .tableTxt .tableImg {position: fixed; top: 0; left: 0; width: 300px; object-fit: cover; opacity: 0; z-index: 5; border-radius: 20px; 
transition: opacity 0.3s; pointer-events: none;}

/* .tableInner li.on */
.projects .ncs .table .tableInner li.on {background: #000; transition: width 0.3s; max-height: 15vw;}
.projects .ncs .table .tableInner li.on .tableTxt .tit {color: #fff; transition: all 0.4s ease-in-out;}
.projects .ncs .table .tableInner li.on .tableTxt .txt {opacity: 1; transition: all 0.3s ease-in-out;max-height: 10vw;}

/* poa -> pof 되도록 */

.projects .ncs .btnBox {position: absolute; top: 47%;}
.projects .ncs .meTxt {display: block; text-align: center; margin: 30vw 0;}
.projects .ncs .meTxt h3 {font-style: italic; font-weight: 300;font-size: 3.6vw; font-weight: 300;}
.projects .ncs .meTxt p {font-weight: 100; font-size: 3.4vw;}


/* ---------- portfolio process ---------- */
.process .inner {width: 100%;}
.process .box {width: 100%; height: 120vh; background: #000; padding: 15% ;box-sizing: border-box; }
.process .box .tit {font-size: 13vw; color: #fff; display: block; text-align: center; line-height: 0.9;}
.process .box .img {width: 15.62vw; margin: -3vw auto 0;}
.process .box .img img {width: 100%; height: 100%;}

.process .ideas {position: relative;}
.process .ideas .titBox {width: 100%; display: block;margin: 15vw 0 5.06vw 0;}
.process .ideas .titBox h2 {font-size: 6.8vw; text-align: center; line-height: 6.6vw;font-weight: 300;}
.process .ideas .titBox h2 span {font-size: 5vw; padding: 0 0.5vw;}
.process .ideas .titBox .txt {text-align: center; font-size: 0.9vw; letter-spacing: -0.05vw; margin-top: 0.73vw;}

/* ideas. cardBox */
.process .ideas .cardBox {display: block; margin: 0 auto 16.88vw;}
.process .ideas .cardBox .ideaList {width: 70%; margin: 0 auto; display: flex; }
.process .ideas .cardBox .ideaList li {width: 15.35vw; height: 14.11vw; background: #fff; border: 0.15vw solid #000;border-radius: 1.04vw 0.26vw 0.26vw 0.26vw; padding: 1.56vw 2.08vw; box-sizing: border-box; position: relative; display: block;justify-content: flex-start;}
.process .ideas .cardBox .ideaList .ideaImg h3 {font-family: 'PP Editorial New'; font-size: 1.45vw; font-weight: 300;}
.process .ideas .cardBox .ideaList .ideaImg p {font-family: 'Neulis Sans'; font-size: 0.73vw; font-weight: 300; color: #888;}
.process .ideas .cardBox .ideaList .ideaImg .img {position: absolute; width: 5vw; display: block; bottom: 10%; right: 10%;}
.process .ideas .cardBox .ideaList .ideaImg .img img {width: 100%;}
.process .ideas .cardBox .ideaList:nth-child(2), .process .ideas .cardBox .ideaList:nth-child(4) {justify-content: flex-end;}
.process .ideas .cardBox .ideaList:nth-child(1) li, .process .ideas .cardBox .ideaList:nth-child(3) li {margin-right: 0.73vw;}
.process .ideas .cardBox .ideaList:nth-child(2n) li {margin-left: 0.73vw;}
.process .ideas .btnBox {left: 50%; margin-top: 3vw;}
.process .ideas .svgAni9 {position: absolute; top: 5%; left:27%; z-index: 100; width: 50vw;z-index: -1; }
.process .ideas .svgAni9.motion .path9 {stroke-dasharray: 2977; stroke-dashoffset: 2977; animation: ani9 1.6s linear .4s forwards;}
@keyframes ani9 {
    0% {stroke-dashoffset: 2977;}
    100% {stroke-dashoffset: 0;}
}


/* .ideaList li:hover */
.process .ideas .cardBox .ideaList li:hover {transform: scale(1.2); transition: all 0.4s; z-index: 2; background: #eee;}
.process .ideas .cardBox .ideaList li:hover p {animation: textAni 0.8s linear 0.2s forwards;}
.process .ideas .cardBox .ideaList li:hover .ideaImg .img {transition: all 0.4s; animation: imgAni 0.4s linear 0s forwards;}
@keyframes imgAni {
    0% {transform: translateX(0);}
    100% {transform: translateX(-3.5vw) scale(1.2);}
}


.process .ideas .hesitate {display: block; text-align: center; margin: 42vw 0 30vw;}
.process .ideas .hesitate p {font-weight: 300; font-size: 4.42vw;}


/* ---------- footer ---------- */
footer {width: 100%; margin: 0 auto; background: #000; color: #fff; padding: 7.76vw 0;} 
footer h2 {font-size: 10.41vw; font-weight: 600; text-align: center; font-family: 'Neulis Sans';}
footer .box {display: flex; width: 80%; margin: 8.59vw auto 0;}
footer .box .svgAni10 {position: absolute; width: 64.32vw; bottom: 2.4%; left: 18.5%;}
footer .box .svgAni10.motion .path10 {stroke-dasharray: 1808; stroke-dashoffset: 1808; animation: ani10 1.4s linear .4s forwards;}
@keyframes ani10 {
    0%{stroke-dashoffset: 1808;}
    100%{stroke-dashoffset: 0;}
}
footer .box .img {width: 25vw;}
footer .box .img img { width: 100%;}
footer .box .contactBox {display: block; width: 100%;}
footer .box .contactBox .contact {display: flex; justify-content: flex-end;}
footer .box .contactBox .contact .link li {font-size: 1.25vw; font-weight: 100; margin-bottom: 1.04vw; text-align: end ; color: #888;}
footer .box .contactBox .contact .link li:hover {color: #fff; transition: all 0.2s; transform: translateX(10px);}
footer .box .contactBox .contact .link li:nth-child(1) {font-size: 2vw; font-weight: 300; margin-bottom: 1.25vw; color: #fff;}
footer .box .contactBox .contact .link li:nth-child(2), footer .box .contactBox .collaborate li:nth-child(2) {margin-left: 2.71vw;}
footer .box .contactBox .collaborate {display: flex; font-size: 1.25vw; font-weight: 100; color: #888;justify-content: flex-end;}
footer .box .contactBox .collaborate li {text-align: end; margin-top: 6.93vw;}
footer .box .contactBox .collaborate li:hover {transition: all 0.2s; transform: translateY(-10px);}


.topBtn {position: fixed;bottom: 50px;right: 30px;width: 50px;height: 50px;background-color: #1d1d1d;color: #fff;border-radius: 50%;display: flex;align-items: center;justify-content: center;cursor: pointer;opacity: 0;transition: opacity 0.3s;box-sizing: border-box;padding-bottom: 5px;z-index: 3000;mix-blend-mode:exclusion;}

.arrow{width: 0; height: 0; border-left: 10px solid transparent;border-right: 10px solid transparent;border-bottom: 15px solid #fff;}

.topBtn.show {opacity: 1;}


/* text animation */
.tit.motion .char {
    animation: textAni 0.5s both;
    animation-delay: calc(0.1s * var(--char-index));
}

.txt.motion .word {
    animation: textAni 0.9s both;
    animation-delay: calc(0.01s * var(--word-index));
}

/* .txt.motion .char {
    animation: textAni 0.9s both;
    animation-delay: calc(0.01s * var(--char-index));
} */

@keyframes textAni {
    0% {opacity: 0;}
    30% {opacity: 0;}
}


/* ========== responsive web ========== */
/* 1600px - 1401px */
@media (max-width: 1600px) {
    .about .box {height: 110vh;}
    .visual .mainTit .title {margin: -65px auto 0;}
}
/* 1400px - 1280px */
@media (max-width:1400px) {
    .about .box {padding-top: 20%;}
    .about .box:nth-child(2) {padding-top: 16%;}
    .about .box:nth-child(2) .img {width: 18%;}
    .visual .mainTit .title {margin: -47px auto 0;}
    .slider-buttons {padding: 1.5vw; box-sizing: border-box;}
    .slick-prev {margin-right: 30px;}
    .slick-next {margin-left: 30px;}
    .projects .ncs .table {margin: -2vw auto 0;}
    .projects .ncs .btnBox {top: 49%;}
    .projects .ncs .meTxt h3 {font-size: 60px;}
    .projects .ncs .meTxt p {font-size: 50px;}
}

/* Large devices (desktops, 1025px to 1279px) */
@media (max-width: 1279px) {
    .btnBox {animation: none;}
    .visual .img {width: 20vw;}
    .visual .svgAni1 {width: 34vw; right: 30%; top: 16%;}
    .visual .svgAni2 {top: 6%; left: 47.5%;}
    .visual h3 {font-size: 2.2vw;}
    .visual .visualBox {margin: 22vw 0;}
    .visual .mainTit .title {margin: -40px auto 0;}
    .visual .Txt .txt {font-size: 2.2vw; padding-left: 10vw;}
    .visual .Txt .txt:nth-child(2) {font-size: 1.4vw; line-height: 1.4;}
    .visual .Txt > .txt .keyword:after {height: 0.1vw; left: 22.5%; width: 53vw;}
    .visual .Txt > .txt .keyword:hover:after {width: 59vw;left: 20.5%;}
    .visual .Txt .btnBox {padding-left: 10vw;}
    .button_container {width: 10vw;}
    .moreBtn {padding: 0.7vw 1.6vw; font-size: 1.2vw; border-radius: 2.2vw;}
    .about .box {width: 100%; height: 110vh; padding-top: 22%; }
    .about .box:nth-child(1) .tit {font-size: 25vw;}
    .about .box:nth-child(2) .tit {font-size: 28vw;}
    .about .box:nth-child(2) .img {width: 22vw; margin: -14vw auto 0;}
    .about .me .svgAni5 {top: 36%;}
    .about .me .svgAni6, .about .me .svgAni7 {bottom: 39.5%;}
    .projects .uiux .fix .txtBox {font-size: 14px;}
    .projects .uiux .fix .txtBox .txt.kr {font-size: 11px;}
    .slider-buttons {padding: 1.5vw; box-sizing: border-box;}
    .slick-prev {margin-right: 100px;}
    .slick-next {margin-left: 100px;}
    .projects .box {padding: 20%;}
    .projects .clone .cardBox {margin: 2vw auto 0;}
    .projects .ncs .table {margin: 0 auto;}
    .projects .ncs .btnBox {top: 48%;}
    .process .ideas .hesitate p {font-size: 6vw;}
    footer .box .svgAni10 {bottom: 2.3%;}
}

/* Medium devices (tablets, 768px to 1024px) */
@media (max-width: 1024px) {
    .gnb {border-radius: 0 0 2vw 0;}
    .moreBtn {animation: none;}
    .visual .img {width: 55%; margin: -16vw auto 12.71vw; padding-left: 9.5vw;}
    .visual .svgAni1 {display: none;}
    .visual .visualBox {display: block; margin: 0 auto 40vw; width: 90%;}
    .visual .mainTit .title {margin: -22px auto 0; width: 60vw;}
    .visual h3 {font-size: 5vw;}
    .visual .svgAni2 {display: none;}
    .visual .Txt .txt {font-size: 2.5vw; padding-left: 0; font-size: 3vw;}
    .visual .Txt > .txt .lion {font-size: 2.6vw; padding: 0 2vw; border-radius: 1.8vw;}
    .visual .Txt > .txt .keyword:after {width: 0;}
    .visual .Txt .txt:nth-child(2) {font-size: 1.8vw;}
    .visual .Txt .btnBox {padding-left: 0;}
    
    
    .text_container {color: #fff;}
    header .innerHeader .gnbList.on {padding: 9vw 1.2vw 2vw;}
    .visual .Txt > .txt .keyword:after {height: 1px; left: 20.5%; width: 59vw;}
    .about .box {padding: 15%; position: sticky; height: 60vw;}
    .about .box:nth-child(2) {padding-top: 10%;}
    .about .inner > ul {display: block;}
    .projects .uiuxList li .titBox, .slick-prev, .slick-next {font-size: 3vw;}
    .projects .clone {height: 80vw;}
    .projects .clone .titBox .txt {font-size: 14px;}
    .projects .clone .cardBox .card .cardInner .tit {font-size: 3.2vw;}
    .projects .clone .cardBox .cardCon li:nth-child(5) .cardInner h2 {margin: 3vw auto 2vw;}
    .process .ideas .titBox .txt {font-size: 10px;}
    .projects .box {height: 60vw; padding: 10%;}
    .projects .ncs .table .tableInner li .tableTxt .tableImg {width: 24vw; border-radius: 10px;}
    .process .ideas .svgAni9 {display: none;}
    .projects .ncs .meTxt h3 {font-size: 6vw;}
    .projects .ncs .meTxt p {font-size: 5vw;}
    .projects .clone .cardBox .cardCon .card:nth-child(5) {display: none;}
    .process .box {height: 60vw;padding: 12%;}
    .process .ideas .cardBox .ideaList {width: 90%;}
    .process .ideas .cardBox .ideaList:nth-child(2) li, .process .ideas .cardBox .ideaList:nth-child(4) li {margin-left: 1vw;}
    .process .ideas .cardBox .ideaList li {width: 28vw; height: 21vw; margin: 1vw;}
    .process .ideas .cardBox .ideaList .ideaImg h3 {font-size: 3vw;}
    .process .ideas .cardBox .ideaList .ideaImg p {display: none;}
    .process .ideas .cardBox .ideaList .ideaImg .img {width: 10vw;}
    .process .ideas .cardBox .ideaList li:hover {transform: scale(1.05); transition: all 0.4s; z-index: 2; background: #eee;}
    .process .ideas .cardBox .ideaList li:hover .ideaImg .img {transition: all 0.4s; animation: imgAni2 0.4s linear 0s forwards;}
@keyframes imgAni2 {
    0% {transform: translateX(0);}
    100% {transform: translateX(-6vw) scale(1.1);}
}
    .process .ideas .btnBox {margin-top: -10vw;}
    footer .box .svgAni10 {bottom: 2.1%;}
    .button_circle {animation: none;}
    .button1 {overflow: visible;}



    .projects {margin-top: 10vw;}
    .projects .uiuxList {display: block;  width: 100%;justify-content: space-between; margin: 5vw auto 0; }
    .projects .uiuxList li {width: 80%; margin: 5vw auto 0;}
    .projects .uiuxList li .titBox, .slick-prev, .slick-next {font-size: 3vw;}
    .projects .uiux .fix {position: sticky; width: 90%; margin: 10vw auto 0; height: 100%}
    .projects .uiux .fix .txtBox {display: block; font-size: 16px; margin: 0 auto; width: 80%;}
    .projects .uiux .fix .txtBox p {font-size: 2vw; display: none;}
    .projects .uiux .fix .txtBox p.txt.kr {display: block; margin: 0 auto; text-align: center; font-size: 1.2vw;}
    .projects .uiux .fix h2 {margin-top: 0.5vw; text-align: center; font-size: 10vw; line-height: 8.4vw;}
    .projects .uiux .btnBox {left: 50%; transform: translateX(-50%); top: 660%;}

    .projects .clone .titBox h2 {font-size: 10vw; line-height: 8.4vw;}
    .projects .clone .titBox .txt {font-size: 1.2vw;}
    footer .box .svgAni10 {bottom: 2.5%;}

    .projects .ncs .titBox h2 {font-size: 10vw; line-height: 8.4vw;}
    .projects .ncs .titBox .txt {font-size: 1.2vw;}
    .projects .ncs .table .tableInner li .tableTxt {padding: 2vw;}
    .projects .ncs .table .tableInner {width: 85%;}
    .projects .ncs .table .tableInner li .tableTxt .tit {font-size: 3vw;}
    .projects .ncs .btnBox {top: 57%;}
}

/* Small devices (landscape phones, 480px to 767px)  */
@media (max-width: 767px) {
    header {height: 40px;}
/*     header .innerHeader .gnb {border-radius: 0 0 4vw 0;}
    header .innerHeader .gnbList {padding: 12vw 0 5vw 2vw;border-radius: 0 0 4vw 0;} */
    .gnb .logo {display: none;}
    .gnb .menuOpen {right: -25%; color: #000 !important;}
    /* .visual .visualBox {display: block; margin: 0 auto 40vw; width: 90%;}
    .visual .mainTit .title {margin: -22px auto 0; width: 60vw;}
    .visual .img {width: 25vw; margin: -6vw auto 0vw;}
    .visual h3 {font-size: 5vw; }
    .visual .Txt .txt {font-size: 2.5vw; padding-left: 0; font-size: 3vw;}
    .visual .Txt > .txt .lion {font-size: 2.6vw; padding: 0 2vw; border-radius: 1.8vw;}
    .visual .Txt > .txt .keyword:after {width: 0;}
    .visual .Txt .txt:nth-child(2) {font-size: 1.8vw;}
    .visual .svgAni1, .visual .svgAni2 {display: none;}
    .visual .Txt .btnBox {padding-left: 0;} */
    .about .box {padding: 10vw; box-sizing: border-box; text-align: center;}
    .about .box:nth-child(1) .tit {font-size: 28vw;}
    .about .box:nth-child(2) .tit {font-size: 30vw;}
    .about .me {margin: 10vw auto 0;}
    .about .me .img {margin: 3vw auto; width: 30vw;}
    .about .me > h3 {font-size: 4vw;}
    .about .me > p {font-size: 3.6vw;}
    .about .me .txt.kr {font-size: 1.6vw; letter-spacing: -0.5px;}
    .about .me ul .tit {font-size: 3vw; margin: auto 4vw 4vw;}
    .about .me ul li {font-size: 2vw;}
    .about .me ul li .check {width: 2vw; height: 100%; padding-top: 0.3vw;
    }
    .about .me .skillBox {width: 59%;}
    .about .me .svgAni3 {width: 7vw; left: 31%;}
    .about .me .svgAni4 {width: 6vw; top: 30%; right: 30%;}
    .about .me .svgAni5 {width: 52vw; top: 38.5%; left: 21%;}
    .about .me .svgAni6, .about .me .svgAni7 {width: 15vw; bottom: 36.5%;}
    .about .me .svgAni6 {left: 28%;}
    .about .me .svgAni7 {right: 22.5%;}
    .about .me .svgAni8 {width: 0.5vw; bottom: 20%;}
    .about .me .btnBox {bottom: 10%;}
    
    .projects {margin-top: 10vw;}
    .projects .box {
        height: 60vw;
        padding: 10%;
        background: #000;
        color: #fff;
    }
    .projects .clone .cardBox {display: none;}
    .slider-buttons {padding: 0.1vw;}
    footer .box .svgAni10 {bottom: 1.9%;}
    .button_circle {animation: none;}
    .button1 {overflow: visible;}
    footer .box .svgAni10 {
        bottom: 2.4%;
    }
}

/* Extra small devices (portrait phones, less than 480px) */
@media (max-width: 479px) {

}
