html,
body {
	overflow: hidden;
	width: 100%;
	height: 100%;
	margin: 0;
	font-size: 3vmin;
}
li {
	list-style: none;
}
.swal-title {
	text-align: center;
	font-size: 24px;
	background: white;
}
.swal-text {
	text-align: center;
	font-size: 24px;
	background: white;
}
.swal-footer {
	font-size: 24px;
	background: white;
}
.swal-button {
	font-size: 16px;
	padding: 5px 20px;
	border: 1px solid gray;
	border-radius: 4px;
}
.container {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	text-align: center;
}
.ca {
	padding: 20 20;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	transform: translate(-50%, -50%);
	text-align: center;
	/* border: 1px solid black; */
}
.cb {
	position: relative;
	left: 50%;
	width: 100%;
	transform: translate(-50%, 0%);
	text-align: center;
	/* border: 1px solid black; */
}
.ckbox {
	position: absolute;
	padding: 0 20;
	/* top:50%; left:50%; */
	/* transform: translate(-50%, -50%); */
	text-align: left;
	/* border: 1px solid black; */
}
.img {
	max-width: 100%;
}
hr {
	margin-top: 0;
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}
.hr-dotted {
	border: 0px;
	border-top: 1px dotted black;
}
.hr-dashed {
	border: 0px;
	border-top: 1px dashed black;
}
button {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(91, 151, 203);
	border-radius: 4px;
	cursor: pointer;
}
button:hover {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(10, 99, 233);
	border-radius: 4px;
	cursor: pointer;
}
div {
	background: gray;
}
form {
	/*display: inline;*/
	text-align: center;
}
input[type="submit"] {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(91, 151, 203);
	border-radius: 4px;
	cursor: pointer;
}
input[type="submit"]:hover {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(10, 99, 233);
	border-radius: 4px;
	cursor: pointer;
}
input[type="button"] {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(91, 151, 203);
	border-radius: 4px;
	cursor: pointer;
}
input[type="button"]:hover {
	font-size: 2vmin;
	background-color: rgb(91, 151, 203);
	color: white;
	margin: 5 5;
	padding: 1 20px;
	border: 3px solid rgb(10, 99, 233);
	border-radius: 4px;
	cursor: pointer;
}
input[type="text"],
select {
	width: 50vmin;
	font-size: 2vmin;
	text-align: center;
	margin: 0;
	padding: 1 0px;
	display: inline-block;
	border: 3px solid #ccc;
	border-radius: 4px;
	box-sizing: border-box;
}
input[type="checkbox"] {
	width: 2vmin;
	height: 2vmin;
}
input[type="radio"] {
	width: 2vmin;
	height: 2vmin;
}

/* =========================
   공통 카드 레이아웃 (check_email, check_name 등)
   ========================= */
/* 페이지 가운데 정렬 */
.page-center {
	justify-content: center;
	align-items: center;
}

/* 공통 카드 */
.card {
	display: flex;
	flex-direction: column;
	gap: 4vmin;

	width: min(90vw, 900px);
	padding: 4vmin;

	background: white;
	border-radius: 8px;
	box-sizing: border-box;

	max-height: 90vh;
	overflow: auto;
}

/* 카드 안내문 */
.card-title {
	margin: 0;
	margin-top: -3vmin;
	line-height: 1.5;
	word-break: keep-all;
	background: white;
	text-align: center;
	font-size: clamp(18px, 4.5vmin, 42px);
}

/* 좌측정렬 안내문(필요할 때) */
.card-title.left {
	text-align: left;
	font-size: clamp(16px, 3vmin, 28px);
}

/* form은 원래 display:inline이라 깨짐 → 카드 안에서는 flex로 고정 */
.card form,
.card .card-form {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2vmin;

	width: 100%;
	background: white;
}

/* 2컬럼 row (이름 입력 같은) */
.card .row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 2vmin;
	width: 100%;
	background: white;
}

.card .label {
	width: 13%;
	text-align: right;
	font-size: clamp(14px, 2.5vmin, 24px);
	background: white;
}

.card .field {
	width: 45%;
	text-align: left;
	background: white;
}

/* input 폭은 카드에 맞게 */
.card input[type="text"] {
	width: min(70vmin, 100%);
	min-height: 40px;
	font-size: clamp(14px, 2vmin, 22px);
}

/* submit 버튼 보장 */
.card input[type="submit"] {
	display: inline-block;
	min-height: 40px;
	font-size: clamp(14px, 2vmin, 22px);
	padding: 0.2em 1.6em;
}

/* =========================
   informed consent 
   ========================= */

/* consent 스크롤 박스만 추가 */
#check_email .consent-box {
	border: 2px solid black;
	padding: 2vmin;
	background: white;

	/* 긴 텍스트는 여기서만 스크롤 */
	height: min(72vh, 900px);
	overflow-y: auto;
	overflow-x: hidden;
	box-sizing: border-box;
}

/* consent 문단 스타일(기존 2.5vmin 느낌 유지 + 안정화) */
#check_email .consent-h {
	text-align: justify;
	padding-left: 2%;
	margin: 2vmin 0 1vmin 0;
	background: white;
	font-size: clamp(14px, 2.5vmin, 22px);
}

#check_email .consent-p {
	line-height: 1.5;
	padding-left: 5%;
	padding-right: 2%;
	text-align: justify;
	margin: 0 0 2vmin 0;
	background: white;
	font-size: clamp(14px, 2.5vmin, 22px);
}

/* consent 페이지 카드 폭 확장 */
#check_email .card {
	width: min(95vw, 1200px);
}

/* =========================
   infor_self
   ========================= */

/* infor_self 안내문 크기 & 폭 조정 */
#infor_self .card {
	width: min(95vw, 1100px);
}

/* =========================
   call_experimenter 페이지 전용
   ========================= */
#call_experimenter .call-card {
	width: min(90vw, 900px);
	text-align: center;
	transform: translateY(-6vmin);
}

/* 원래 5vmin 느낌 */
#call_experimenter .call-warn {
	margin: 0;
	font-size: clamp(18px, 5vmin, 46px);
	line-height: 1.5;
	background: white;
}

/* 원래 6vmin 느낌 */
#call_experimenter .call-main {
	margin: 0;
	font-size: clamp(22px, 6vmin, 54px);
	line-height: 1.5;
	background: white;
}

/* =========================
   celebrity 페이지 전용
   ========================= */
/* celebrity 페이지는 절대 viewport를 넘지 않게 */
body#celebrity {
	height: 100vh;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* 카드 폭(원래 70% 느낌) */
body#celebrity .celeb-card {
	width: min(95vw, 1200px);
	gap: 2.5vmin;
	max-height: 92vh; /* 화면 안 */
	display: flex;
	flex-direction: column;
	overflow: hidden; /* 카드 자체 스크롤 제거 */
}

/* 위 지시문: 박스 없이 */
body#celebrity .celeb-instruction {
	text-align: left;
	word-break: keep-all;
	margin-top: -3vmin;
	font-size: clamp(16px, 3vmin, 26px);
	line-height: 1.5;
	background: white;
}

/* 아래 리스트 영역: 화면 작아지면 여기만 스크롤 */
body#celebrity .celeb-list-wrap {
	max-height: none; /* 높이 제한 제거 */
	flex: 0 0 auto; /* 남은 높이만 사용 */
	overflow: hidden; /* 스크롤 완전 차단 */
	align-self: flex-start;
}

/* 3박스 테이블 */
body#celebrity .celeb-table {
	width: 100%;
	/*height: 100%;*/
	table-layout: fixed; /* 핵심 */
	border-spacing: 2vmin;
	border-collapse: separate;
	font-size: clamp(14px, 2.5vmin, 22px);
}

/* 각 컬럼이 박스 */
body#celebrity .celeb-col {
	border: 1px solid black;
	padding: 2vmin;
	vertical-align: middle;
	text-align: left;
	background: white;
	overflow: hidden;
}

body#celebrity .celeb-col p {
	margin: 1.5vmin 0 2.2vmin 2vmin;
	background: white;
	white-space: nowrap; /* 줄 수 고정 */
	overflow: hidden;
	text-overflow: ellipsis; /* 이름 길면 … 처리 */
}

body#celebrity .celeb-col label {
	margin-left: 0.8vmin;
}

/* =========================
   Encoding Instruction / Canvas task 공통
   ========================= */

/* overlay는 캔버스 위 */
.overlay {
	position: absolute;
	inset: 0;
	z-index: 4;
}

/* canvas는 그 아래 */
.canvas-layer {
	position: absolute;
	inset: 0;
	z-index: 2;
	cursor: none;
}

/* instruction 카드 */
.instruction-card {
	width: min(92vw, 1000px);
	font-size: clamp(14px, 3.2vmin, 26px);

	max-height: 100vh; /* 스크롤 대신 축소 */
	box-sizing: border-box;
}

/* 제목 */
.instruction-title {
	font-size: clamp(20px, 4.2vmin, 38px);
}

/* 주의문 */
.instruction-note {
	text-align: left;
}

/* 시작 안내 */
.instruction-start {
	font-size: clamp(16px, 3.5vmin, 30px);
}

/* overlay 자체도 스크롤/넘침 방지 */
#warn.overlay {
	background: gray;
	overflow: hidden;
}

#mydiv.canvas-layer {
	background: gray;
}

/* instruction */
#warn .instruction-card {
	padding: min(4vmin, 18px);
	gap: min(2vmin, 10px);
	width: min(92vw, 1000px);

	max-height: 92vh !important;
	overflow: visible !important;
	background: gray;
}

/* =========================
   Memory 용 추가
   ========================= */

/* Memory instruction: 왼쪽 정렬 문단 */
#warn .instruction-left {
	text-align: left;
	font-size: clamp(14px, 3vmin, 26px);
	margin-bottom: 0vmin;
}

/* 1/2/3 리스트 */
#warn .instruction-list {
	margin: 0;
	margin-top: 4vmin;
	padding-left: 35%;
	text-align: left;
	list-style: none;
	background: gray;
}

#warn .instruction-list li {
	font-size: clamp(14px, 2.8vmin, 24px);
	line-height: 1.25;
	margin-bottom: 0.5vmin;
	white-space: nowrap; /* 한 줄 유지 */
}

/* =========================
   check_point 페이지
   ========================= */

#check_point {
	background: white; /* 다른 페이지와 동일 */
}

/* 카드 폭 */
#check_point .checkpoint-card {
	width: min(90vw, 900px);
	text-align: center;

	/* call_experimenter랑 위치감 통일 */
	transform: translateY(-6vmin);
}

/* 경고 문구 (기존 5vmin 느낌) */
#check_point .checkpoint-warn {
	margin: 0;
	font-size: clamp(18px, 5vmin, 46px);
	line-height: 1.5;
	background: white;
}

/* 메인 안내 (기존 6vmin 느낌) */
#check_point .checkpoint-main {
	margin: 0;
	font-size: clamp(22px, 6vmin, 54px);
	line-height: 1.5;
	background: white;
}

/* =========================
   Survey S2 (survDiv02)
   ========================= */

#survDiv02 .survey-card {
	width: min(95vw, 1200px);
	gap: 2.5vmin;
}

/* 제목 */
#survDiv02 .survey-title {
	margin: 0;
	margin-top: -3vmin;
	text-align: center;
	font-size: clamp(18px, 4vmin, 36px);
	background: white;
}

/* 본문(스크롤 영역) */
#survDiv02 .survey-body {
	border: 1px solid black; /* 원래 박스 느낌 */
	padding: 2.5vmin 3.5vmin;
	/*padding: 3vmin;*/
	background: white;

	max-height: 90vh; /* 화면 작아도 footer 보이게 */
	overflow-y: auto;
	overflow-x: hidden;
}

/* 질문 텍스트 */
#survDiv02 .survey-q {
	margin: 0 0 2vmin 0;
	font-size: clamp(14px, 2.5vmin, 22px);
	line-height: 1.5;
	text-align: left;
}

/* 답변 영역 */
#survDiv02 .survey-a {
	margin-bottom: 2vmin;
}

/* textarea: 너 기존 느낌 유지 */
#survDiv02 textarea {
	width: 100%;
	height: 20vh; /* 원래 20% 느낌을 안정적으로 */
	min-height: 140px;
	font-size: clamp(14px, 2vmin, 20px);
	padding: 1%;
	box-sizing: border-box;
}

/* footer는 고정(스크롤 안 됨) */
#survDiv02 .survey-footer {
	text-align: center;
	font-size: clamp(14px, 2.5vmin, 22px);
	background: white;
}

/* NEXT 버튼: 기존 submit 스타일 쓰되 간격만 */
#survDiv02 #survBT01 {
	margin-left: 2vmin;
}

/* Q1 라디오 전체 줄 */
#survDiv02 #radio_1 {
	display: flex;
	justify-content: space-between;
	width: 90%;
	margin: 0 auto;
}

#survDiv02 #radio_1 label {
	display: flex;
	align-items: center;
	gap: 0.6vmin;
	margin: 0 4vmin;
}

#survDiv02 .survey-scale-labels,
#survDiv02 #radio_1 + div {
	width: 80%;
	margin: 0.8vmin auto 0;
}

/* =========================
   End of Session 1 & 2
   ========================= */

#end {
	background: white; /* 다른 페이지와 동일 */
}

/* 카드 크기 & 위치 */
#end .end-card {
	width: min(90vw, 900px);
	text-align: center;

	/* 기존 ca 중앙 느낌 */
	transform: translateY(-4vmin);
}

/* 메인 문구 (기존 5vmin 느낌) */
#end .end-main {
	margin: 0;
	font-size: clamp(20px, 5vmin, 48px);
	line-height: 1.5;
	background: white;
}

/* 보조 문구 (기존 4vmin 느낌) */
#end .end-sub {
	margin-top: 5vmin;
	font-size: clamp(16px, 4vmin, 36px);
	line-height: 1.5;
	background: white;
}

/* 모든 문장 줄바꿈 금지 */
#end .end-card p {
	white-space: nowrap;
}

/* =========================
   Debriefing
   ========================= */

#debrief .debrief-card {
	width: min(95vw, 1200px);
	gap: 3vmin;
}

#debrief .debrief-title {
	margin: 0;
	margin-top: -3vmin;
	text-align: center;
	font-size: clamp(16px, 3.2vmin, 28px);
	line-height: 1.5;
	background: white;
}

#debrief .debrief-sub {
	font-size: clamp(14px, 2.6vmin, 22px);
}

/* 본문 스크롤 박스 */
#debrief .debrief-body {
	border: 2px solid black;
	padding: 3.5vmin 4vmin;
	background: white;

	max-height: 90vh;
	overflow-y: auto;
	overflow-x: hidden;
	box-sizing: border-box;
}

/* 본문 제목 */
#debrief .debrief-heading {
	text-align: center;
	font-size: clamp(18px, 3.5vmin, 32px);
	margin: 0 0 2.5vmin 0;
}

/* 문단 */
#debrief .debrief-p {
	margin: 0 0 4vmin 0;
	line-height: 1.45;
	font-size: clamp(14px, 2.5vmin, 22px);
	text-align: justify;
}

/* 참고문헌 리스트 */
#debrief .debrief-list {
	margin-top: 1.5vmin;
	padding-left: 4vmin;
	text-align: left;

	list-style-type: disc;
	list-style-position: outside;

	font-size: clamp(15px, 2.6vmin, 22px);
}

/* li 전역 list-style 제거 덮어쓰기 */
#debrief .debrief-list li {
	list-style: disc !important;
	margin-bottom: 1.6vmin;
	line-height: 1.45;
}

/* =========================
   check_name page only
   ========================= */

#check_name .card .label {
	min-width: 140px; /* First Name / Last Name 한 줄 보장 */
	width: auto;
	white-space: nowrap;
	text-align: right;
}
