:root {
  --font-100px: 6.25rem;
  --font-90px: 5.63rem;
  --font-80px: 5rem;
  --font-70px: 4.38rem;
  --font-60px: 3.75rem;
  --font-50px: 3.13rem;
  --font-44px: 2.75rem;
  --font-40px: 2.5rem;
  --font-36px: 2.25rem;
  --font-34px: 2.13rem;
  --font-30px: 1.88rem;
  --font-28px: 1.75rem;
  --font-26px: 1.63rem;
  --font-24px: 1.5rem;
  --font-22px: 1.38rem;
  --font-20px: 1.25rem;
  --font-18px: 1.13rem;
  --font-16px: 1rem;
  --font-14px: 0.88rem;

  --color-main: rgba(44, 0, 62, 1);
  --color-point1: rgba(0, 174, 255, 1);
  --color-point2: rgba(255, 0, 128, 1);
  --color-sub1: rgba(245, 245, 245, 1);
  --color-sub2: rgba(163, 163, 163, 1);
  --main-font: rgba(245, 245, 245, 1);
  --sub-font: rgba(204, 204, 204, 1);
}

* {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  box-sizing: border-box;
  vertical-align: top;
  -webkit-text-size-adjust: none;
}

html {
  font-size: var(--font-18px);
  scroll-snap-type: y mandatory;
  overflow-y: scroll;
}

body {
  font-family: "Poppins", "Noto Sans KR", "sans-serif" !important;
  color: var(--main-font);
  cursor: none;
}

h1,
h2,
h3,
h4,
h5 {
  font-family: "Orbitron", "sans-serif";
  color: var(--main-font);
}


article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ul,
ol,
dl {
  list-style: none;
}

img,
video {
  border: 0;
  vertical-align: top;
}

a,
a:link {
  color: var(--main-font);
  text-decoration: none;
  display: block;
}

a:visited {
  color: var(--main-font);
}

a:hover,
a:active {
  color: var(--main-font);
  text-decoration: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

input,
select {
  vertical-align: middle;
}

label {
  cursor: pointer;
}

.blind,
legend,
hr,
caption {
  display: block;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: -1000rem;
}

i,
em,
address {
  font-style: normal;
  font-weight: normal;
}

p,
li,
dd {
  line-height: 1.5rem;
}


.hidden,
#skipNav {
  display: block;
  position: absolute;
  left: -1000%;
  top: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
  color: rgba(44, 0, 62, 0.1);
}


.custom-cursor {
  position: fixed;
  width: 32px;
  height: 32px;
  background-image:
    url("data:image/svg+xml,<svg width='32' height='32' viewBox='0 0 43 43' fill='none' xmlns='http://www.w3.org/2000/svg'><g filter='url(%23filter0_dd_354_2)'><rect x='5' y='13.7617' width='33' height='13.7143' rx='6.85714' fill='white' stroke='%2343A1FF' stroke-width='2'/><rect x='14.5238' y='37' width='33' height='13.7143' rx='6.85714' transform='rotate(-90 14.5238 37)' fill='white' stroke='%2343A1FF' stroke-width='2'/><line x1='21.0147' y1='36.3281' x2='21.0147' y2='4.67269' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/><line x1='37.4861' y1='21.1636' x2='5.1707' y2='21.1636' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/><line x1='36.9706' y1='17.7979' x2='18.3823' y2='17.7979' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/><path d='M24.9608 24.5L6.37255 24.5' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/><line x1='1' y1='-1' x2='26.9349' y2='-1' transform='matrix(-0.0122835 -0.999924 0.99993 -0.0118157 26.3039 32.6152)' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/><line x1='1' y1='-1' x2='26.9349' y2='-1' transform='matrix(-0.0122835 -0.999924 0.99993 -0.0118157 19.0686 36.6538)' stroke='%2343A1FF' stroke-width='2' stroke-linecap='round'/></g><defs><filter id='filter0_dd_354_2' x='0' y='0' width='43' height='43' filterUnits='userSpaceOnUse' color-interpolation-filters='sRGB'><feFlood flood-opacity='0' result='BackgroundImageFix'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feMorphology radius='1' operator='dilate' in='SourceAlpha' result='effect1_dropShadow_354_2'/><feOffset dy='1'/><feGaussianBlur stdDeviation='1.5'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0'/><feBlend mode='normal' in2='BackgroundImageFix' result='effect1_dropShadow_354_2'/><feColorMatrix in='SourceAlpha' type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0' result='hardAlpha'/><feOffset dy='1'/><feGaussianBlur stdDeviation='1'/><feColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0'/><feBlend mode='normal' in2='effect1_dropShadow_354_2' result='effect2_dropShadow_354_2'/><feBlend mode='normal' in='SourceGraphic' in2='effect2_dropShadow_354_2' result='shape'/></filter></defs></svg>");
  background-size: contain;
  pointer-events: none;
  transform: translate(-50%, -50%);
  z-index: 9999;
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.custom-cursor.clicked {
  transform: translate(-50%, -50%) rotate(360deg);
}


.down {
  display: block;
  font-size: var(--font-20px);
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 20%;
}

.down .scroll {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #fff;
  z-index: -1;
  animation: swipe-down 3s ease-in-out infinite;
}

.down .scroll::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 0;
  background: var(--color-sub1);
  border-radius: 10px;
  opacity: 0;
  animation: light-trail 3s ease-in-out infinite;
}

@keyframes swipe-down {
  0% {
    transform: translateY(-20px);
    opacity: 0;
  }

  50% {
    transform: translateY(0);
    opacity: 1;
  }

  100% {
    transform: translateY(80px);
    opacity: 0;
  }
}

@keyframes light-trail {
  0% {
    height: 0;
    opacity: 0;
  }

  50% {
    height: 0;
    opacity: 1;
  }

  100% {
    height: 80px;
    opacity: 0;
  }
}

/* down 영역 */
.down .scroll img {
  width: 70%;
  margin-top: 50%;
  transition: transform 0.7s ease;
}

.down .scroll img:hover {
  transform: rotate(360deg);
}

#wrap .videoBox .down .fa-apple {
  font-size: 1.5rem;
  padding-bottom: 8px;
}

#wrap .videoBox .down .fa-angles-down {
  font-size: 1rem;
}

#headerArea .menu_ham {
  display: none;
}

/* 와이드 pc */
/* 헤더 공통 영역 */
#wrap {
  width: 100%;
  overflow-x: hidden;

}

#headerArea {
  position: fixed;
  z-index: 100;
  height: 100px;
  background: rgba(44, 0, 62, 0.8);
  left: 0;
  top: 0;
  width: 100%;
}

#headerArea .headerInner {
  width: 90%;
  margin: 10px auto 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#headerArea .logo {
  width: 100%;
}

#headerArea .logo a {
  width: 40%;
  min-width: 300px;
  height: 80px;
  margin-left: -10px;
  background: url(../images/main/logo.svg) no-repeat;
  background-size: contain;
  text-indent: -999px;
  overflow: hidden;
}

/*  네비 영역! */
#headerArea #gnb ul {
  display: flex;
  gap: 20px;
  justify-content: center;
  align-items: center;
}

#headerArea #gnb .main_menu h3 a {
  position: relative;
  transition: all 0.3s ease-in-out;
}

#headerArea #gnb .main_menu h3 a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -4px;
  width: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--color-point1), var(--color-sub1));
  transition: all 0.3s ease-in-out;
  transform: translateX(-50%);
}

#headerArea #gnb .main_menu h3 a:hover::after {
  width: 100%;
}

#headerArea #gnb .main_menu h3 a:hover {
  background: linear-gradient(90deg, var(--color-point1), var(--color-sub1));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* 푸터 공통 영역 */

#footerArea .top_move {
  display: block;
  width: 70px;
  position: fixed;
  right: 10px;
  bottom: 100px;
  z-index: 100;
  font-weight: 800;
  transition: all 0.5s ease-in-out;
  opacity: 0;
  visibility: hidden;
  transition: all 0.5s ease-in-out;
}

#footerArea .top_move img {
  width: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 0.5s ease-in-out;
}

#footerArea .top-text {
  font-weight: 800;
  font-size: var(--font-16px);
}

#footerArea .top_move.show {
  opacity: 1;
  visibility: visible;
}

#footerArea .top_move:hover img {
  transform: rotate(360deg);
}

#footerArea .top_move:hover .top-text {
  background: linear-gradient(90deg, var(--color-point1), var(--color-sub1));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

#footerArea {
  width: 100%;
  height: 300px;
  text-align: center;
  background: #333;
}

#footerArea img {
  width: 370px;
  margin-top: 10px;
  object-fit: cover;
  object-position: center;
}

#footerArea .copyright {
  font-size: var(--font-20px);
  margin: 10px 0 0;
}

#footerArea .footer_sns {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 20px;
  font-size: var(--font-50px);
}

#footerArea .footer_sns li a i {
  transition: color 0.3s ease;
}

#footerArea .footer_sns li a:hover .fa-youtube {
  color: #ff0000;
}

#footerArea .footer_sns li a:hover .fa-instagram {
  color: #e4405f;
}

#footerArea .footer_sns li a:hover .fa-square-facebook {
  color: #1877f2;
}

#footerArea .footer_sns li a:hover .fa-square-github {
  color: black;
}

/* 



일반 pc 




*/

@media screen and (max-width: 1280px) {

  /* 푸터 공통 영역 */
  #footerArea .top_move {
    width: 63px;
    right: 9px;
  }
}

/* 




여기 부터 테블릿 이여 혼동 하지말어여 





*/

@media screen and (max-width: 1150px) {
  #headerArea .headerInner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  #headerArea .logo a {
    min-width: 220px;
  }

  #headerArea #gnb {
    position: fixed;
    top: 110px;
    right: -100%;
    width: 500px;
    height: 600px;
    background-color: rgba(44, 0, 62, 0.8);
    z-index: 200;
    transition: right 0.5s ease-in-out;
    padding-top: 100px;
    border-radius: 20px 0 0 20px;
    box-sizing: border-box;
    overflow-y: auto;
  }

  /* 네비 사라져 */
  #headerArea #gnb .main_menu {
    display: none;
  }

  /* 햄버거 두둥 등장  */
  #headerArea .menu_ham {
    display: block;
    width: 40px;
    height: 40px;
    position: relative;
    z-index: 201;
  }

  #headerArea .menu_ham span,
  #headerArea .menu_ham span::before,
  #headerArea .menu_ham span::after {
    content: "";
    display: block;
    width: 25px;
    height: 3px;
    background: var(--color-sub1);
    position: absolute;
    left: 0;
    border-radius: 5px;
    transition: all 0.3s ease;
  }

  #headerArea .menu_ham span {
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-indent: -9999px;
    transition: all 0.3s ease;
  }

  #headerArea .menu_ham span::before {
    top: -8px;
  }

  #headerArea .menu_ham span::after {
    top: 8px;
  }

  /* 엑스자 만들기! */

  #headerArea.mn_open .menu_ham span {
    background: transparent;
  }

  #headerArea.mn_open .menu_ham span::before {
    transform: rotate(45deg);
    top: 0;
  }

  #headerArea.mn_open .menu_ham span::after {
    transform: rotate(-45deg);
    top: 0;
  }

  /* 클릭하면 이제 네비가 보여야하니까 */
  #headerArea.mn_open #gnb {
    right: 0;
  }

  #headerArea.mn_open #gnb .main_menu {
    display: block;
  }

  #headerArea.mn_open #gnb .main_menu li {
    text-align: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  }

  #headerArea.mn_open #gnb .main_menu a {
    padding: 20px 0;
    font-size: var(--font-22px);
    color: #fff;
    font-weight: 800;
  }

  #footerArea .top_move {
    width: 60px;
    right: 9px;
  }

  #footerArea img {
    width: 340px;
    margin-top: 10px;
    object-fit: cover;
    object-position: center;
  }
}

/* 소형 테블릿 */
@media screen and (max-width: 855px) {

  /* down 영역 */
  .down img {
    width: 55%;
    margin-top: 50%;
  }

  #headerArea {
    height: 80px;
  }

  #headerArea .menu_ham {
    margin-bottom: 20px;
  }

  #headerArea .headerInner {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  #wrap #imgBG {
    top: 80px;
    height: calc(100vh - 80px);
    transform: translateX(-50%);
  }

  #headerArea .logo {
    width: 50%;
  }

  #headerArea .logo a {
    min-width: 200px;
  }

  #headerArea #gnb {
    position: fixed;
    top: 110px;
    right: -100%;
    width: 400px;
    height: 450px;
    padding-top: 45px;
  }

  #footerArea {
    width: 100%;
    height: 270px;
    text-align: center;
    background: #333;
  }

  #footerArea img {
    margin-top: 10px;
    object-fit: cover;
    object-position: center;
  }

  #footerArea .copyright {
    font-size: var(--font-16px);
    margin: 10px 0;
  }

  #footerArea .footer_sns {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
    gap: 20px;
    font-size: var(--font-40px);
  }

  #footerArea .top_move {
    width: 45px;
    right: 1px;
  }
}

/* 모바일 */
@media screen and (max-width: 667px) {
  #footerArea .top_move {
    width: 40px;
    right: 9px;
  }

  #footerArea .footer_sns {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 30px;
    gap: 20px;
    font-size: var(--font-36px);
  }
}

/* 최소 사이즈 처리 */
@media screen and (max-width: 565px) {
  #wrap {
    min-width: 320px;
    right: 0;
  }

  #headerArea #gnb {
    position: fixed;
    top: 110px;
    right: -100%;
    width: 250px;
    height: 400px;
  }

  #footerArea {
    width: 100%;
    height: 200px;
    text-align: center;
    background: #333;
  }

  #footerArea .logo {
    width: 50%;
    min-width: 150px;
    margin-top: 10px;
    object-fit: cover;
    object-position: center;
  }

  #footerArea .copyright {
    font-size: var(--font-14px);
    line-height: 1.1rem;
    margin: 0;
  }

  #footerArea .footer_sns {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 10px;
    gap: 20px;
    font-size: var(--font-30px);
  }
}

@media screen and (max-width: 467px) {
  #headerArea .logo a {
    min-width: 170px;
  }

  #headerArea .menu_ham {
    margin-bottom: 25px;
  }
}