html, body {
  	height: 100%;
  	scroll-behavior: auto; /* GSAP가 제어하므로 기본 스무스 스크롤 해제 */
}
/* 좌측 메뉴: 항상 화면 위에 떠 있는 형태 */
.sidebar {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	width: 200px;
	z-index: 9999;
}
.menu {
	list-style: none;
	margin: 0;
	padding: 0 0 0 1rem;
	gap: .25rem;
	display: flex;
	flex-direction: column;
}
.menu a {
	display: block;
	padding: .5rem .75rem;
	font-weight: 900;
	color: #676767;
	text-transform: uppercase;
}
.menu a.active, .menu a:hover {
	color: #ff31ca;
}
/* 각 섹션은 정확히 100vh, 가운데 정렬 */
section.section {
	min-height: 100vh;
	display: flex;
	align-items: center;
	position: relative;
}
.content {
	margin: 20px;
	padding-top: 4rem;
	width: 100%;
}
section .fw-bold {
	font-weight: 800 !important;
}
sub {
	word-break: keep-all;
	font-size: small;
	display: block;
	line-height: 1.2;
}
.section .d-box {
	width: 40%;
}
/* 섹션 내부 박스(부트스트랩 col-6 두 개 예시) */
.content-box {
	border: 2px solid #cfd6dd;
	border-radius: .75rem;
	padding: 3rem 1.5rem;
	text-align: center;
	background: #fff;
}
#sec5 td {
	font-weight: bold;
	height: 32px;
	line-height: 32px;
	padding-right: 1rem;
}
#sec5 .staff td:first-child {
	color: #ff31ca;
}
#sec6 .faculty div {
	line-height: 32px;
	font-weight: bold;
}
h1.outline {
	position: relative;
	display: inline-block;
	color: #ccc;
	padding-left: 48px;
}
h1.outline::before {
	content: attr(data-text);
	position: absolute;
	color: #ccc;
	inset: 0;
	left: 48px;
	color: transparent;
	-webkit-text-stroke: 10px #ff31ca;
	z-index: -1;
}
h1.outline::after {
	content:url('/img/icon_h1.svg');
	width: 40px;
	height: 40px;
	position: absolute;
	left: 0;
	top: 4px;
	z-index: -1;
}

.menu-wrap {
	height: 100vh;
}

.menu-list {
	display: flex;
	flex-direction: row; /* ← 세로에서 가로로 */
	justify-content: center; /* 가운데 정렬 */
	align-items: center;
	gap: var(--menu-gap);
	flex-wrap: wrap; /* 좁은 화면에서 자동 줄바꿈 */
}

.menu-item {
	position: relative;
	line-height: 1;
	padding: .35em .8em; /* 가로 간격 확보 */
	cursor: pointer;
	user-select: none;
	text-align: center; /* 가로 배치 시 중앙 정렬 */
}
.divider {
  	display: none; /* 가로일 때 구분선 제거 */
}

/* 텍스트 자체 */
.menu-link {
	position: relative;
	font-weight: 800;
	font-size: 4rem;
	letter-spacing: .02em;
	text-decoration: none;
	color: black;
	display: inline-block;
	text-transform: uppercase;
	position: relative;
	display: inline-block;
	z-index: 2; /* 그래픽 위에 표시 */
}

/* ::before로 테두리(아웃라인) 효과 */
.menu-link::before {
	content: attr(data-text);
	position: absolute;
	inset: 0;
	color: transparent;
	-webkit-text-stroke: var(--stroke-width) currentColor;
	opacity: 0;
	transform: translate3d(0,0,0);
	transition: opacity .18s ease;
	pointer-events: none;
	-webkit-text-stroke: 6px #ccc; /* 윤곽선 두께·색상 */
	z-index: -1;
}
.menu-link:hover {
	color: #ccc;
}
.menu-link:hover::before {
  -webkit-text-stroke: 22px #ff31ca;
}
/* hover 시 테두리 표시(미세 강조) */
.menu-item:hover .menu-link::before,
.menu-item:focus-visible .menu-link::before {
	opacity: 1;
}

/* 텍스트 뒤의 SVG 그래픽 */
.menu-graphic {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 14em;   /* 텍스트 크기에 비례 */
	height: 14em;
	transform: translate(-50%, -50%);
	z-index: 1;    /* 텍스트보다 뒤 */
	opacity: 0;    /* GSAP로 제어 */
	pointer-events: none;
}

/* 살짝의 가이드 라인(선택) */
.divider {
	width: 100%;
	max-width: 760px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
	margin: .5rem auto;
}
/* vimeo responsive embed */
.embed-container {
	padding-bottom: 56.25%;
	overflow: hidden;
	max-width: 100%;
}
.ratio-9x16 {
    --bs-aspect-ratio: 142.7777777778%;
}
.vp-center {
	display: inherit !important;
}

.embed-container iframe,
.embed-container object,
.embed-container embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

/* 작은 화면에서 좌측 메뉴 위치 조정 */
@media (max-width: 991px) {
	html, body {
	  	height: inherit;
	}
	main {
		margin-top: 92px;
	}
	.sidebar {
		position: fixed;
		transform: none;
		top: 80px;
		width: 100%;
	}
	.menu {
		justify-content: center;
	}
	.menu a {
		padding: .3rem .5rem;
		font-size: small;
	}
	#sec1 {
		padding-top: 50px;
	}
	.menu {
		flex-direction: inherit;
	}
	#sec5 .staff td:first-child {
		vertical-align: top;
		width: 40%;
	}
	.menu-list, .menu-wrap {
		height: calc(100vh - 160px);
	}
	.section .d-box {
		width: 100%;
	}
	h1.outline::after {
	top: -2px;
	}
}