@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/variable/pretendardvariable.css');

html,body{
  font-family:'Pretendard Variable','Noto Sans KR',sans-serif;
  color:#fff;
  background:#000;
  margin:0;
  padding:0;
  height:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

a{text-decoration:none;color:inherit;}
img,video{max-width:100%;height:auto;display:block;}
*,*::before,*::after{box-sizing:border-box;}
::selection{background:rgba(0,224,255,.3);color:#fff;}

html,body{overflow-y:auto;overflow-x:hidden;scroll-snap-type:none;}
#dotNav{display:none;}

@media(min-width:1024px){
  html,body{
    height:100%;
    overflow-y:scroll;
    scroll-behavior:smooth;
    scroll-snap-type:y mandatory;
  }
  .snap-section{scroll-snap-align:start;min-height:100vh;}
  #dotNav{display:flex!important;}
}

::-webkit-scrollbar{display:none;}
body{-ms-overflow-style:none;scrollbar-width:none;}

h1{font-size:clamp(2rem,5vh,4rem)!important;font-weight:700!important;}
h2{font-size:clamp(1.75rem,4.5vh,3.5rem)!important;font-weight:600!important;}
h3{font-size:clamp(1.5rem,4vh,3rem)!important;font-weight:600!important;}
p{font-size:clamp(0.9rem,2.2vh,1.25rem)!important;}
span{font-size:clamp(0.9rem,2vh,1.1rem)!important;}

@keyframes fade-up-soft{
  0%{transform:translateY(30px);opacity:0;}
  100%{transform:translateY(0);opacity:1;}
}
.animate-fade-up-soft{opacity:0;}
.animate-fade-up-soft.active{animation:fade-up-soft 1.2s ease-out forwards;}

@keyframes fade-left-soft{
  0%{transform:translateX(-30px);opacity:0;}
  100%{transform:translateX(0);opacity:1;}
}
.animate-fade-left-soft{opacity:0;}
.animate-fade-left-soft.active{animation:fade-left-soft 1.2s ease-out forwards;}

@keyframes fade-right-soft{
  0%{transform:translateX(30px);opacity:0;}
  100%{transform:translateX(0);opacity:1;}
}
.animate-fade-right-soft{opacity:0;}
.animate-fade-right-soft.active{animation:fade-right-soft 1.2s ease-out forwards;}

@keyframes fade-zoom{
  0%{transform:scale(0.92) translateY(20px);opacity:0;}
  100%{transform:scale(1) translateY(0);opacity:1;}
}
.animate-fade-zoom{opacity:0;}
.animate-fade-zoom.active{animation:fade-zoom 1.2s ease-out forwards;}

@keyframes bounce-slow{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
.animate-bounce-slow{animation:bounce-slow 2s infinite ease-in-out;}

@keyframes pulse-slow{
  0%,100%{opacity:0.7;}
  50%{opacity:1;}
}
.animate-pulse-slow{animation:pulse-slow 2.5s infinite ease-in-out;}

@keyframes fade{
  0%,100%{opacity:0.9;}
  50%{opacity:0.4;}
}
.animate-fade{animation:fade 1.5s infinite ease-in-out;}

#mainContainer{
  position:relative;
  z-index:0 !important;
}

.mobile-contact-bar{
  position:fixed;
  z-index:999999 !important;
}
