:root { --bg-color: #ffffff; --text-color: #d3d3d3; --slider-bg-color: #ccc; --slider-checked-bg: #d1d1d1; --slider-button-bg: #fff; } [data-theme="dark"] { --bg-color: #1e1e2f; --text-color: #1d1d1d; --slider-bg-color: #666; --slider-checked-bg: #e4e4e4; } body { margin: 0; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: var(--bg-color); color: var(--text-color); font-family: 'Noto Sans KR', sans-serif; text-align: center; position: relative; overflow: hidden; transition: background-color 1s ease-in-out; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } #background-element { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 1; transition: opacity 2s ease-in-out; } #background-video { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; display: block; /* 비디오 요소가 보이도록 설정 */ transition: opacity 1.5s cubic-bezier(0.4, 0, 0.2, 1); } #background-video source { display: none; } #background-video source:first-child { display: block; } .theme-switch-wrapper { position: absolute; top: 20px; right: 20px; z-index: 10; } .theme-switch { position: relative; display: inline-block; width: 80px; height: 40px; } .theme-switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--slider-bg-color); transition: 0.4s; border-radius: 34px; display: flex; justify-content: space-between; padding: 0 10px; align-items: center; } .icon { position: absolute; font-size: 1.2rem; color: var(--text-color); } .sun-icon { left: 10px; } .moon-icon { right: 10px; } .slider:before { position: absolute; content: ""; height: 30px; width: 30px; border-radius: 50%; left: 4px; bottom: 4px; background-color: var(--slider-button-bg); transition: 0.4s; } input:checked + .slider { background-color: var(--slider-checked-bg); } input:checked + .slider:before { transform: translateX(40px); } input:checked + .slider .moon-icon { display: none; } input:not(:checked) + .slider .sun-icon { display: none; } .countdown-container { text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5); z-index: 2; transition: opacity 0.5s ease-in-out; /* 페이드 효과 추가 */ } .countdown { font-family: 'Cinzel', serif; font-size: 4rem; letter-spacing: 0.1rem; margin-bottom: 1rem; animation: glow 1.5s infinite alternate; display: flex; /* 수평 정렬을 위한 flexbox 추가 */ justify-content: center; align-items: center; gap: 1rem; /* 간격 조정 */ transition: opacity 0.5s ease-in-out; /* 페이드 효과 추가 */ } @keyframes glow { from { text-shadow: 0 0 5px var(--text-color), 0 0 10px var(--text-color); } to { text-shadow: 0 0 10px var(--text-color), 0 0 20px var(--text-color); } } .message { font-size: 1.2rem; margin-top: 0.5rem; opacity: 0.8; transition: opacity 0.5s ease-in-out; /* 페이드 효과 추가 */ } .digit, .colon { display: inline-block; vertical-align: middle; line-height: 1; } .colon { font-size: 4rem; /* 숫자와 동일한 크기로 변경 */ margin: 0 0.2rem; /* 좌우 간격 조정 */ opacity: 0.7; } .digit { font-size: 4rem; opacity: 1; transition: opacity 0.3s ease-in-out; position: relative; } .digit.animate { animation: simpleFade 0.3s ease-in-out; } @keyframes simpleFade { 0% { opacity: 0; } 100% { opacity: 1; } } .digit.animate-out { transform: scale(0.8); opacity: 0; } @keyframes bounce { 0%, 20%, 50%, 80%, 100% { transform: translateY(0); } 40% { transform: translateY(-10px); } 60% { transform: translateY(-5px); } } .icon-container { position: fixed; bottom: 30px; width: 100%; display: flex; justify-content: center; gap: 25px; z-index: 10; } .icon-link { color: var(--text-color); font-size: 2rem; opacity: 0.7; transition: all 0.3s ease; text-decoration: none; display: flex; /* 추가 */ align-items: center; /* 추가 */ justify-content: center; /* 추가 */ } .kakao-icon { width: 2rem; height: 2rem; color: var(--text-color); /* 다른 아이콘과 같은 색상 사용 */ opacity: 0.7; /* 다른 아이콘과 동일한 투명도 */ transition: all 0.3s ease; } .icon-link:hover .kakao-icon { opacity: 1; color: var(--accent-color); /* hover 시 accent 색상으로 변경 */ } .icon-link:hover { opacity: 1; transform: translateY(-5px); } .icon-link:hover .kakao-icon { filter: invert(1); /* hover 시 완전히 밝게 */ } .fade-in { opacity: 1 !important; } /* 페이드 효과를 위한 클래스 추가 */ .fade-out { opacity: 0; }