/* 모바일 대응 */
@media (max-width: 768px){
    .mo_768{
        display: block;
    }
	.pc_768{
		display: none !important;
	}
}
@media (min-width: 769px){
    .mo_768{
        display: none !important;
    }
	.pc_768{
		display: block;
	}
}

/* flex */
.fl { display: flex; }
.wr { flex-wrap: wrap; }
.fdc { flex-direction: column; }
.fdr { flex-direction: row; }
.alc { align-items: center; }
.als { align-items: flex-start; }
.ale { align-items: flex-end; }
.alb {align-items: baseline;}
.jb { justify-content: space-between; }
.ja { justify-content: space-around; }
.jc { justify-content: center; }
.js { justify-content: flex-start; }
.je { justify-content: flex-end; }
.acc { align-content: center; }
.acs { align-content: flex-start; }
.ace { align-content: flex-end; }
.ff1 { flex: 1; }

/* grid */
.grid{
	display: grid;
}

/*** 공통 클래스 ***/
.dn{
	display: none;
}
.dis-no{
	display: none !important;
}
.ko{
	font-family: 'Pretendard', sans-serif;
}
.en{
	font-family: 'Ubuntu', sans-serif;
	letter-spacing: normal;
}
.ir{
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
	padding: 0;
	border: 0;
	height: 1px;
	width: 1px;
	overflow: hidden;
}
.scr_not {
	height:100%; 
	min-height: 100%; 
	overflow:hidden !important; 
	touch-action:none;
}
.hidden {
	opacity: 0;
	visibility: hidden;
}
.hidden.not{
	opacity: 1;
	visibility: visible;
	transition: opacity .3s ease;
}
.cf::after,
.cf::before{
	content:'';
	display:block;
	clear:both;
}

.rel {
    position: relative;
}
.abs {
    position: absolute;
}
.tl_x{
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}
.tl_y{
    left: 0;
    top: 50%;
    transform: translateY(-50%);
}
.tl_z{
	left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);

}
.table{
	display:table;
	width:100%;
	table-layout:fixed;
}
.table > div{
	display:table-cell;
	vertical-align:top;
}

/* Skip Navigation */
.skip_nav{
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	z-index: 99999;
}
.skip_link{
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 5.2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 2rem;
	background: #111;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: -0.01em;
	white-space: nowrap;
	transform: translateY(-120%);
	opacity: 0;
}
.skip_link:focus,
.skip_link:focus-visible{
	transform: translateY(0);
	opacity: 1;
	outline: none;
}

/* 컨텐츠 등장 애니메이션 */
.ani{
    overflow: hidden;
    position: relative;
}
.ani .ani_inner{
    display: block;
	opacity: 0;
    transform: translateY(100%);
    transition: transform 1s cubic-bezier(0,0,.43,1.06), opacity 1s ease;
}
.ani .ani_inner.ani_view{
    transform: translateY(0);
	opacity: 1;
}
.ani_content{
    transform: translateY(100%);
    opacity: 0;
    transition: transform 0.8s ease-out, opacity 0.8s ease-out;
}
.ani_content.ani_view{
    transform: translateY(0);
    opacity: 1;
}

/* line-reveal (line 단위 스태거 등장) */
.line-reveal{
    display: block;
    opacity: 0;
}
.ani.active .line-reveal{
    opacity: 1;
}
.line-reveal .line{
    display: block;
    overflow: hidden;
}
.line-reveal .line .inner{
    display: block;
    transform: translateY(140%);
    opacity: 0;
    transition: transform 1s cubic-bezier(0,0,.43,1.06), opacity 1s ease;
}
.line-reveal .line:nth-child(1) .inner{ transition-delay: 0.0s; }
.line-reveal .line:nth-child(2) .inner{ transition-delay: 0.1s; }
.line-reveal .line:nth-child(3) .inner{ transition-delay: 0.2s; }
.line-reveal .line:nth-child(4) .inner{ transition-delay: 0.3s; }
.line-reveal .line:nth-child(5) .inner{ transition-delay: 0.4s; }
.line-reveal .line:nth-child(6) .inner{ transition-delay: 0.5s; }
.line-reveal .line:nth-child(7) .inner{ transition-delay: 0.6s; }
.line-reveal .line:nth-child(8) .inner{ transition-delay: 0.7s; }
.line-reveal .line:nth-child(9) .inner{ transition-delay: 0.8s; }
.line-reveal .line:nth-child(10) .inner{ transition-delay: 0.9s; }
.line-reveal .line:nth-child(11) .inner{ transition-delay: 1.0s; }
.line-reveal .line:nth-child(12) .inner{ transition-delay: 1.1s; }
.line-reveal .line:nth-child(13) .inner{ transition-delay: 1.2s; }
.line-reveal .line:nth-child(14) .inner{ transition-delay: 1.3s; }
.line-reveal .line:nth-child(15) .inner{ transition-delay: 1.4s; }
.line-reveal .line:nth-child(16) .inner{ transition-delay: 1.5s; }
.line-reveal .line:nth-child(17) .inner{ transition-delay: 1.6s; }
.line-reveal .line:nth-child(18) .inner{ transition-delay: 1.7s; }
.line-reveal .line:nth-child(19) .inner{ transition-delay: 1.8s; }
.line-reveal .line:nth-child(20) .inner{ transition-delay: 1.9s; }
.line-reveal .line:nth-child(21) .inner{ transition-delay: 2.0s; }

.ani.active .line-reveal .line .inner{
    transform: translateY(0);
    opacity: 1;
}
/* 개별 .line 요소 활성화 */
.line-reveal .line.line-active .inner{
    transform: translateY(0);
    opacity: 1;
}
.line-reveal .inner{
    white-space: normal;
}
