@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css");
* {
	font-family: "Pretendard Variable", Pretendard, -apple-system,
		BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI",
		"Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji",
		"Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
	box-sizing: border-box;
	color: #373737;
	caret-color: transparent;
}
body {
	margin: 0;
	padding-bottom: 16.3rem;
	min-height: 100vh;
	/* aspect-ratio: 375/675; */
	min-height: 66rem;
}
html {
	font-size: clamp(8.5px, 2.67vw, 13px);
}
.today {
	position: relative;
	height: 10.4rem;
}
.title {
	font-size: 2.8rem;
	line-height: 4.2rem;
	color: #2b2b2b;
	text-align: center;
	position: absolute;
	left: 0;
	right: 0;
	transition: opacity 0.6s ease-in-out;
	top: 2.2rem;
	font-weight: 700;
	opacity: 0;
	display: none;
}
.title.show {
	display: block;
}

.title2 {
	font-size: 2.8rem;
	line-height: 4.2rem;
	color: #2b2b2b;
	text-align: center;
	position: absolute;
	left: 0;
	right: 0;

	transition: 1s ease-in-out;
	font-weight: 700;
	/* opacity: 1; */
	top: -30%;
	opacity: 0;
}
.title2.hidden {
	display: none;
}
.title2 .green {
	color: #49a860;
}
button {
	font-size: 1.8rem;
	color: #41b464;
	background-color: #edf6ef;
	border: 0.1rem solid #41b464;
	width: 16rem;
	height: 4rem;
	border-radius: 2rem;
}
.top {
	height: 9.3rem;
}
.top {
	display: flex;
	justify-content: center;
	padding-top: 2rem;
	padding-bottom: 2rem;
}
.top .logo {
	width: 6.7rem;
	height: 3rem;
	margin-top: -30px;
	opacity: 0;
	transition: 0.5s;
}
.top .logo.show {
	margin-top: 0;
	opacity: 1;
}
video {
	max-width: 100%;
}

.bg-video {
	width: 36rem;
	/* height: 45rem;  */
	max-width: 100%;
	aspect-ratio: 600/450;
	overflow: hidden;
	/* border: 0.1rem solid red; */
	margin: 0 auto;
	position: absolute;
	/* bottom: 3rem; */
	top: 27rem;
	left: 1rem;
	transition: opacity 0.6s ease-in-out;
	z-index: -1;
	justify-self: anchor-center;
}

.bg-video video {
	width: 100%;
	margin-top: -51rem;
	margin-top: -84%;
	opacity: 0;
	transition: 0.6s;
}
.today-btn-wrapper {
	width: 100%;
	display: flex;
	justify-content: center;
}
.today-btn {
	opacity: 0;
	display: none;
	color: #41b464;
	border: 1px solid #41b464;
	border-radius: 2rem;
	width: 16rem;
	height: 4rem;
	font-size: 1.8rem;
	font-weight: 700;
	text-align: center;
	place-self: center;
	align-content: center;
	margin: 35px 0;
	cursor: pointer;
	background-color: #ebf6ee;
	z-index: 999;
	transition: 0.6s;
}
.today-btn:hover {
	background-color: #41b464;
	color: #fff;
}
.today-btn.show {
	display: block;
}
.hidden {
	display: none;
}

.background {
	background-color: #fafae9;
	width: calc(100% - 4rem);
	height: 45rem;
	border: 1px solid #49a860;
	border-radius: 2rem;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	position: absolute;

	max-width: 43rem;
	margin: 0 auto;
	top: 9.3rem;
	left: -120%;
	right: unset;
	transition: 0.6s;
}
.background.active {
	left: 2rem;
	right: 2rem;
}

.background .hr {
	width: 100%;
	height: 1px;
	border-top: 1px solid #c8e5cf;
	width: 100%;
}

.music-bg {
	position: absolute;
	top: 57rem;

	display: flex;
	background: #dd93ff;
	border: 1px solid #c869ff;
	height: 6rem;
	align-items: center;
	padding-left: 0.7rem;
	border-radius: 3rem;
	gap: 0.7rem;
	transition: 0.9s;
	width: calc(100% - 4rem);
	max-width: 43rem;
	justify-self: center;
}
.music-bg .headeset-img {
	border-radius: 50%;
	width: 4.5rem;
	height: 4.5rem;
}
.music-bg .headeset-img img {
	width: 4.5rem;
	height: 4.5rem;
}
.bubble {
	position: absolute;
	left: 0;
	top: -4.2rem;
	opacity: 0;
	transition: 0.3s;
}
.bubble.active {
	opacity: 1;
}
.bubble img {
	width: 14.7rem;
	height: 4.6rem;
}

.song {
	font-size: 1.8rem;
	font-weight: 500;
}
.singer {
	font-size: 1.4rem;
	font-weight: 300;
}
.sprout {
	position: absolute;
	left: 0;
	right: 0;
	margin: 0 auto;
	text-align: center;
	transition: 0.6s;
	opacity: 0;
	top: 21.7rem;
}
.sprout.active {
	opacity: 1;
}
.sprout img {
	width: 4rem;
	height: 1.9rem;
}

.music-bg {
	left: -120%;
}
.music-bg.active {
	left: 2rem;
	right: 2rem;
}
.music-text {
	opacity: 0;
	transition: opacity 0.6s ease-in-out;
}
.music-text.active {
	opacity: 1;
}

.bubble {
	animation: floatAnimation 3s ease-in-out infinite;
}

/* 애니메이션 효과 정의 */
@keyframes floatAnimation {
	0% {
		transform: translateY(0);
	}
	50% {
		/* Y축으로 -15px 만큼 위로 이동 */
		transform: translateY(-0.3rem);
	}
	100% {
		transform: translateY(0);
	}
}

.day-text {
	background: #ebf6ee;
	border-radius: 70% / 77%;
	width: 9.2rem;
	height: 3.6rem;
	align-content: center;
	text-align: center;
	position: absolute;
	align-self: center;
	font-size: 1.8rem;
	font-weight: 700;
	color: #41b464;
	border: 1px solid #41b464;
	top: 1.8rem;
	opacity: 0;
	transition: 0.6s;
}
.day-text.active {
	top: 2.8rem;
	opacity: 1;
}
.question {
	font-weight: 700;
	font-size: 2.4rem;
	line-height: 3.3rem;
	color: #2b2b2b;
	text-align: center;
	position: absolute;
	opacity: 0;
	place-self: center;
	top: 8rem;
	transition: 0.7s;
	word-break: keep-all;
}
.question.active {
	top: 10rem;
	opacity: 1;
}
.answer {
	color: #2b2b2b;
	font-size: 1.8rem;
	font-weight: 500;
	text-align: center;
	position: absolute;
	top: 23rem;
	place-self: center;
	line-height: 2.6rem;
	transition: 0.7s;
	opacity: 0;
}
.answer.active {
	top: 26rem;
	opacity: 1;
}
.loading {
	position: fixed;
	top: 0;
	z-index: 99999;
	left: 0;
	right: 0;
	display: flex;
	justify-content: center;
	background-color: #fbfaea;
}
.loading video {
	max-width: 700px;
	max-height: 100vh;
}
.loading.hidden {
	display: none;
}
