@import url("https://cdn.jsdelivr.net/gh/moonspam/NanumSquare@2.0/nanumsquare.css");
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.css");
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@600&display=swap');
@font-face {
    font-family: 'YeogiOttaeJalnanGothic';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_231029@1.1/JalnanGothic.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'EliceDigitalCoding';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_220508@1.0/EliceDigitalBaeum_Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
}
@font-face {
    font-family: 'EliceDigitalCoding';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_220508@1.0/EliceDigitalBaeum_Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
}
@font-face {
    font-family: 'D2Coding';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_three@1.0/D2Coding.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

:root {
    --color-bg1: rgb(0, 0, 0); 
    --color-bg2: rgb(20, 0, 0);
    --color1: 150, 0, 0;    
    --color2: 100, 0, 0;    
    --color3: 80, 0, 0;     
    --color4: 180, 30, 30;  
    --color5: 60, 0, 0;     
    --color-interactive: 200, 50, 50; 
    --circle-size: 100%;    
    --blending: soft-light; 
}

html { scroll-behavior: smooth; }
* { 
    margin: 0; 
    padding: 0; 
    box-sizing: border-box; 
    font-family: 'NanumSquare', sans-serif; 
    color: #ffffff; 
}
.hero-title, 
.hero-subtitle,
.section-title, 
.shortcut-title, 
.key-message-text,
.key-message-text span,
.uni-name,
.date-num,
.date-day,
.event-label-container,
.event-main-desc,
.nav-link,
.btn-nav-apply,
.interview-card-content p,    
.interview-card-content h3,   
.culture-card-text,           
.culture-card-title           
{ 
    font-family: 'NanumSquare', sans-serif !important; 
    font-weight: 700 !important; 
    letter-spacing: -0.5px;
}

.culture-card-text {
    font-size: 18px; 
    line-height: 1.4;
    word-break: keep-all; 
    text-align: center;
}

.interview-card-content p {
    font-size: 16px;
    line-height: 1.6;
    opacity: 0.9;
}
.nav-link {
    font-size: 16px;
    font-weight: 700 !important; 
    text-transform: uppercase;   
}

.btn-nav-apply {
    font-size: 14px;
    padding: 10px 20px;
    border-radius: 50px;
}
.reveal {
    opacity: 0;
    /* 이동 거리를 30px -> 60px로 늘려 더 역동적인 느낌을 줍니다. */
    transform: translateY(90px); 
    
    /* 시간을 0.8초 -> 1.5초로 늘리고, 
       기본 ease-out 대신 부드러운 가속도 곡선(cubic-bezier)을 적용합니다. */
    transition: opacity 1.5s cubic-bezier(0.2, 0.8, 0.2, 1),
                transform 1.5s cubic-bezier(0.2, 0.8, 0.2, 1);
                
    visibility: hidden;
    will-change: opacity, transform; /* 브라우저 최적화를 돕습니다. */
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
    visibility: visible;
}
/* style.css 파일의 body 부분에 추가 */
body { 
    background-color: #000000; 
    line-height: 1.6; 
    overflow-x: hidden; 
    /* 커서 변경 코드 추가 */
    cursor: url('cursor-default.png'), default; 
}

/* 클릭 가능한 요소(버튼, 링크 등)에도 적용하고 싶다면 아래를 추가하세요 */
a, button, .btn-hero-primary, .btn-white-link, .sub-img-item {
    cursor: url('cursor-default.png'), pointer;
}

.container { 
    max-width: 1040px; 
    margin: 0 auto; 
    padding: 0 20px; 
    position: relative;
    z-index: 5; 
}

.mobile-only { display: none; }

.gradient-bg {
    width: 100vw; height: 100vh;
    position: fixed; top: 0; left: 0;
    z-index: -2; 
    background: #000;
    overflow: hidden;
}

.gradient-bg::after {
    content: "";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(0, 0, 0, 0.55);
    z-index: 10;
    pointer-events: none;
}

.gradients-container { filter: url(#goo) blur(80px); width: 100%; height: 100%; opacity: 1; }

body::before {
    content: "";
    position: fixed;
    top: 0; left: 0; 
    width: 100vw; height: 100vh;
    background-color: rgba(0, 0, 0, 0.45); 
    z-index: -1;
    pointer-events: none;
}

.g1, .g2, .g3, .g4, .g5, .interactive {
    position: absolute; width: var(--circle-size); height: var(--circle-size);
    mix-blend-mode: var(--blending);
    top: calc(50% - var(--circle-size) / 2);
    left: calc(50% - var(--circle-size) / 2);
}

.g1 { background: radial-gradient(circle at center, rgba(var(--color1), 0.6) 0, rgba(var(--color1), 0) 50%) no-repeat; animation: moveVertical 30s ease infinite; }
.g2 { background: radial-gradient(circle at center, rgba(var(--color2), 0.6) 0, rgba(var(--color2), 0) 50%) no-repeat; transform-origin: calc(50% - 400px); animation: moveInCircle 20s reverse infinite; }
.g3 { background: radial-gradient(circle at center, rgba(var(--color3), 0.6) 0, rgba(var(--color3), 0) 50%) no-repeat; transform-origin: calc(50% + 400px); animation: moveInCircle 40s linear infinite; }
.g4 { background: radial-gradient(circle at center, rgba(var(--color4), 0.4) 0, rgba(var(--color4), 0) 50%) no-repeat; animation: moveHorizontal 40s ease infinite; }
.g5 { background: radial-gradient(circle at center, rgba(var(--color5), 0.6) 0, rgba(var(--color5), 0) 50%) no-repeat; animation: moveInCircle 20s ease infinite; }
.interactive { background: radial-gradient(circle at center, rgba(var(--color-interactive), 0.4) 0, rgba(var(--color-interactive), 0) 50%) no-repeat; width: 100%; height: 100%; top: -50%; left: -50%; }

@keyframes moveVertical { 0% { transform: translateY(-50%); } 50% { transform: translateY(50%); } 100% { transform: translateY(-50%); } }
@keyframes moveHorizontal { 0% { transform: translateX(-50%) translateY(-10%); } 50% { transform: translateX(50%) translateY(10%); } 100% { transform: translateX(-50%) translateY(-10%); } }
@keyframes moveInCircle { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.hero, 
.key-message-section, 
.schedule-section, 
.culture-section, 
.event-section, 
.shortcut-section {
    background-color: transparent !important;
    position: relative;
    z-index: 5;
    background-color: #000000;
}

.hero::after { display: none !important; }

.top-marquee { width: 100%; background-color: #000; padding: 10px 0; position: relative; z-index: 1001; border-bottom: 1px solid #222; }
.marquee-track { display: flex; width: max-content; animation: scrollText 80s linear infinite; }
.marquee-text { font-family: 'IBM Plex Sans', sans-serif; font-weight: 500; font-size: 12px; letter-spacing: 2px; white-space: nowrap; }
@keyframes scrollText { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

.navbar { height: 60px; display: flex; align-items: center; position: sticky; top: 0; background: rgba(11, 11, 11, 0.9); backdrop-filter: blur(5px); z-index: 1000; }
.navbar .container { width: 100%; display: flex; justify-content: space-between; align-items: center; }
.nav-links { list-style: none; display: flex; gap: 30px; }
.nav-links a { font-family: 'IBM Plex Sans', sans-serif; text-decoration: none; font-size: 14px; font-weight: 500; color: #aaaaaa; transition: color 0.2s; letter-spacing: 0.5px; }
.nav-links a:hover { color: #ffffff; }
.logo-svg { height: 20px; display: block; filter: brightness(0) invert(1); }

.hero { padding: 100px 0 240px; text-align: center; display: flex; flex-direction: column; justify-content: center; min-height: 80vh; overflow: visible; position: relative; }
.hero-container { position: relative; z-index: 10; }
.hero-title { 
    font-family: 'YeogiOttaeJalnanGothic', sans-serif !important; 
    font-size: 72px; 
    font-weight: normal !important; 
    line-height: 1.2; 
    text-shadow: 0 0 20px rgba(0,0,0,1); 
    letter-spacing: -0.5px; 
}

.subtitle-group {
    display: flex;
    justify-content: center; 
    align-items: center; 
    gap: 12px; 
    margin-bottom: 40px; 
}

.hero-subtitle { 
    display: block !important;
    font-size: 24px; font-weight: 700; 
    letter-spacing: -0.02em; 
    opacity: 0.9;
    margin-top: 30px !important; /* with CTO와 2026 문구 사이 간격을 30px로 넓힘 */
}

.hero-cto { 
    display: block !important;
    font-family: 'Caveat', cursive !important; 
    font-size: 56px; color: #ffffff; 
    line-height: 1.1; 
    margin: 0 auto !important;
}
.btn-hero-primary { display: inline-block; background: linear-gradient(90deg, #FF4B4B 0%, #FF6B35 100%); color: #ffffff; padding: 16px 100px; border-radius: 50px; font-size: 18px; font-weight: 700; text-decoration: none; transition: transform 0.2s; }

#ascii-globe {
    position: absolute;
    top: 140%; 
    left: 50%;
    transform: translate(-50%, -50%);
    font-family: 'Courier New', Courier, monospace !important; 
    font-size: 11px; font-weight: bold; line-height: 12px; letter-spacing: 2px; 
    color: rgba(255, 255, 255, 0.2); pointer-events: none; z-index: 0; 
    -webkit-mask-image: radial-gradient(circle at 50% 20%, black 20%, rgba(0,0,0,0.5) 50%, transparent 75%);
    mask-image: radial-gradient(circle at 50% 20%, black 20%, rgba(0,0,0,0.5) 50%, transparent 75%);
}

.blog-slider-container { width: 100%; overflow: hidden; position: relative; padding: 20px 0; -webkit-mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%); mask-image: linear-gradient(to right, transparent 0%, black 10%, black 90%, transparent 100%); }

.key-message-section { height: 250vh; background-color: transparent !important; position: relative; z-index: 10; }
.key-message-sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; z-index: 15; }
.key-message-text, .key-message-text span { font-family: 'EliceDigitalCoding', monospace !important; font-weight: 700 !important; z-index: 30; position: relative; }
.key-message-text { font-size: 56px; text-align: center; line-height: 1.5; word-break: keep-all; transform: scale(var(--text-scale, 0.85)); }

.key-message-text::before {
    content: ""; position: absolute; top: 50%; left: 50%;
    transform: translate(-50%, -50%) scale(var(--flash-scale, 0.5));
    width: 1200px; height: 600px; border-radius: 50%;
    background: radial-gradient(ellipse, rgba(249, 66, 57, 1) 0%, rgba(249, 66, 57, 0.8) 30%, transparent 65%);
    filter: blur(50px); z-index: -1; pointer-events: none;
    opacity: var(--flash-opacity, 0); will-change: opacity, transform;
}

.reveal-line { display: inline-block; will-change: opacity; }

/* 오리지널 키 메시지 유성 (기존 유지, 스크롤 연동) */
.shooting-star {
    position: absolute; top: 50%; left: 50%; width: 450px; height: 4px;  
    background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.95), #ffffff);
    opacity: 0; pointer-events: none; z-index: 15;
    filter: drop-shadow(0 0 4px rgba(255, 255, 255, 1)) drop-shadow(0 0 10px rgba(255, 255, 255, 0.8)); 
}
.shooting-star::after {
    content: ''; position: absolute; right: 0; top: 50%;
    transform: translateY(-50%); width: 10px; height: 10px;
    background-color: #ffffff; border-radius: 50%;
    box-shadow: 0 0 10px 4px rgba(255, 255, 255, 1), 0 0 25px 8px rgba(255, 255, 255, 0.8); 
}
.shooting-star.active { animation: shootStar 1.5s ease-out forwards; }
@keyframes shootStar {
    0% { transform: translate(-50%, -50%) rotate(-25deg) translateX(-150vw); opacity: 0; }
    10% { opacity: 1; }
    80% { opacity: 1; }
    100% { transform: translate(-50%, -50%) rotate(-25deg) translateX(150vw); opacity: 0; }
}

/* ------------------------------------------------ */
/* 상단 타이틀 영역 파티클 효과 (Hero Particles) */
/* ------------------------------------------------ */
#hero-particles {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none;
    z-index: 1;
    overflow: hidden;
}
.hero-particle {
    position: absolute;
    left: 50%; top: 50%;
    font-family: 'Courier New', Courier, monospace !important;
    
    /* 기존 0.5에서 0.3으로 낮춰서 투명도를 더 높임 (더 연하게 보임) */
    /* 만약 선명하게 튀게 하고 싶다면 0.8 로 변경하세요. */
    color: rgba(255, 255, 255, 0.3); 
    
    font-size: 14px; 
    font-weight: 400;
    opacity: 0;
    animation: radiateParticle forwards; 
}
@keyframes radiateParticle {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.3); }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--tx)), calc(-50% + var(--ty))) scale(1.5); }
}

/* ------------------------------------------------ */
/* 하단 숏컷 섹션 유성 효과 (Shortcut Shooting Stars) */
/* ------------------------------------------------ */
.shortcut-shooting-star {
    position: absolute; 
    width: 100px; 
    height: 1px;  
    background: linear-gradient(to left, transparent, rgba(255, 255, 255, 0.6), #ffffff);
    opacity: 0; 
    pointer-events: none; 
    z-index: 0; 
    filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.4)); 
    animation: shootStarDistant 30s infinite linear !important;
    animation-iteration-count: infinite !important;
    animation-timing-function: linear !important;
    animation-name: shootStarDistant !important;
}
.shortcut-shooting-star::after {
    content: ''; 
    position: absolute; 
    left: 0; 
    top: 50%;
    transform: translateY(-50%); 
    width: 2px; 
    height: 2px;
    background-color: #ffffff; 
    border-radius: 50%;
    box-shadow: 0 0 2px 1px rgba(255, 255, 255, 0.6); 
}
/* 떨어지는 애니메이션에 크기(--star-scale)와 밝기(--star-opacity) 변수 적용 */
@keyframes shootStarDistant {
    0% { transform: rotate(-45deg) translateX(150vw) scale(var(--star-scale, 1)); opacity: 0; }
    2% { opacity: var(--star-opacity, 0.8); }
    15% { transform: rotate(-45deg) translateX(-150vw) scale(var(--star-scale, 1)); opacity: 0; }
    100% { transform: rotate(-45deg) translateX(-150vw) scale(var(--star-scale, 1)); opacity: 0; } 
}

.star-1  { top: 5%;   left: 20%; animation-delay: 0s;   animation-duration: 28s; --star-scale: 1.0; --star-opacity: 0.7; }
.star-2  { top: 15%;  left: 80%; animation-delay: 5s;   animation-duration: 32s; --star-scale: 0.5; --star-opacity: 0.4; }
.star-3  { top: 25%;  left: 40%; animation-delay: 10s;  animation-duration: 26s; --star-scale: 1.2; --star-opacity: 0.8; }
.star-4  { top: 35%;  left: 60%; animation-delay: 15s;  animation-duration: 35s; --star-scale: 0.3; --star-opacity: 0.3; }

.star-5  { top: 45%;  left: 10%; animation-delay: 2s;   animation-duration: 30s; --star-scale: 0.7; --star-opacity: 0.5; }
.star-6  { top: 55%;  left: 90%; animation-delay: 7s;   animation-duration: 29s; --star-scale: 1.4; --star-opacity: 0.9; }
.star-7  { top: 65%;  left: 30%; animation-delay: 12s;  animation-duration: 34s; --star-scale: 0.6; --star-opacity: 0.4; }
.star-8  { top: 75%;  left: 70%; animation-delay: 17s;  animation-duration: 31s; --star-scale: 0.9; --star-opacity: 0.6; }

.star-9  { top: 10%;  left: 55%; animation-delay: 4s;   animation-duration: 33s; --star-scale: 1.1; --star-opacity: 0.7; }
.star-10 { top: 30%;  left: 15%; animation-delay: 9s;   animation-duration: 27s; --star-scale: 0.4; --star-opacity: 0.5; }
.star-11 { top: 50%;  left: 85%; animation-delay: 14s;  animation-duration: 36s; --star-scale: 1.3; --star-opacity: 0.8; }
.star-12 { top: 70%;  left: 45%; animation-delay: 19s;  animation-duration: 32s; --star-scale: 0.5; --star-opacity: 0.3; }

.star-13 { top: 20%;  left: 75%; animation-delay: 1s;   animation-duration: 29s; --star-scale: 0.8; --star-opacity: 0.6; }
.star-14 { top: 40%;  left: 5%;  animation-delay: 6s;   animation-duration: 34s; --star-scale: 1.0; --star-opacity: 0.7; }
.star-15 { top: 60%;  left: 95%; animation-delay: 11s;  animation-duration: 31s; --star-scale: 0.6; --star-opacity: 0.4; }
.star-16 { top: 80%;  left: 25%; animation-delay: 16s;  animation-duration: 30s; --star-scale: 1.2; --star-opacity: 0.8; }

.section-header { text-align: center; margin-bottom: 60px; display: flex; flex-direction: column; align-items: center; }
.section-badge { 
    text-transform: none; 
    font-family: 'IBM Plex Sans', sans-serif; 
    background-color: #FF4B4B; 
    color: #ffffff; 
    font-size: 14px; 
    font-weight: 500; 
    padding: 6px 24px; 
    border-radius: 50px; 
    margin-bottom: 20px; 
    letter-spacing: 1px; 
}
.section-title { font-size: 40px; margin-bottom: 20px; }
.section-subtitle { font-size: 16px; color: #aaaaaa; word-break: keep-all; text-align: center; }

.schedule-section, .culture-section, .event-final-section { padding: 160px 0; }

.schedule-list { 
    max-width: 900px; 
    margin: 0 auto; 
    display: flex; 
    flex-direction: column; 
    gap: 10px; 
}

.schedule-row { 
    display: grid; 
    grid-template-columns: 200px 250px 1fr; 
    align-items: center; 
    padding: 30px 30px; 
    background-color: rgba(255, 255, 255, 0.1); 
    border-radius: 10px; 
    border-bottom: none; 
}
.schedule-row:last-child { border-bottom: none; }
.cell-date { 
    flex: 1; 
    text-align: left; 
    padding-left: 40px; 
}
.cell-time { 
    text-align: left; 
    font-family: 'NanumSquare', sans-serif !important; 
    font-weight: 700; 
    font-size: 32px; 
    padding: 0 0 0 110px; 
    font-variant-numeric: tabular-nums; 
    white-space: nowrap; 
}
.cell-info { 
    flex: 2; 
    /* 기존 left에서 center로 변경하여 내부 요소를 중앙으로 정렬합니다 */
    text-align: center !important; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; /* 수직 중앙 정렬 */
    align-items: center;     /* 수평 중앙 정렬 */
    gap: 0px; /* 학교명과 장소 사이의 간격 */
    padding-left:120px !important; /* 기존에 왼쪽 여백이 있었다면 제거합니다 */
}
.date-num { 
    font-size: 56px !important; 
    letter-spacing: -2px; 
    font-weight: 700;
}
.date-day { 
    font-size: 24px !important; 
    margin-left: 10px; 
    font-weight: 700;
}
.uni-name { 
    font-size: 32px; 
    margin-bottom: 5px; 
    width: 100%; /* 너비를 꽉 채워 텍스트 정렬이 먹히도록 합니다 */
}
.uni-loc { 
    font-size: 18px; 
    color: #dddddd; 
    font-weight: 400; 
    width: 100%; 
}
.color-ewha { color: #00FF9D !important; } 
.color-yonsei { color: #00A3FF !important; } 
.color-korea { color: #FF6464 !important; } 
.color-snu { 
    color: #FFFFFF !important; 
    text-shadow: 0 0 12px rgba(255, 255, 255, 0.6); 
}
.schedule-notice {
    text-align: center;
    margin-top: 40px;
    font-size: 16px;
    color: #aaaaaa;
    word-break: keep-all;
    letter-spacing: -0.3px;
}

.culture-content { max-width: 1100px; margin: 0 auto; }
.main-placeholder img { 
    width: 100%; 
    aspect-ratio: 16 / 9; 
    object-fit: cover; 
    border-radius: 10px; 
    margin-bottom: 30px; 
    box-shadow: 0 20px 40px rgba(0,0,0,0.4); 
}
.sub-placeholder-grid { display: flex; flex-wrap: nowrap; gap: 15px; width: max-content; animation: cultureRolling 100s linear infinite; }
.blog-slider-container:hover .sub-placeholder-grid { animation-play-state: paused; }
.sub-img-item { width: 280px; flex-shrink: 0; background: rgba(255, 255, 255, 0.05); border: 0px solid rgba(255, 255, 255, 0.1); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; text-decoration: none; }
.sub-img-box img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.sub-img-text { 
    font-size: 18px; 
    font-weight: 300; 
    color: #dddddd; 
    line-height: 1.5; 
    background: transparent; 

    /* 해결법: 내부 하단 여백(padding)을 없애고 바깥 여백(margin)으로 빼서 시각적 크기는 유지 */
    padding: 10px 20px 0 20px !important; 
    margin-bottom: 20px !important; 
    
    /* 10px(윗여백) + 54px(2줄 글자 높이) = 딱 64px에서 무조건 자르기 */
    height: 64px !important; 
    flex-grow: 0 !important; 

    /* 말줄임 고정 */
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    
    word-break: break-all !important; 
    white-space: normal !important;
}
@keyframes cultureRolling { 0% { transform: translateX(0); } 100% { transform: translateX(calc(-50% - 12.5px)); } }

.event-final-section { background: transparent !important; }
.event-title {
    font-family: 'NanumSquare', sans-serif !important;
    font-size: 40px !important; 
    letter-spacing: -0.5px !important;
}

.event-cards-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    max-width: 900px;
    margin: 0 auto;
}

.event-card {
    background-color: rgba(255, 255, 255, 0.1); 
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.event-card-header {
    background-color: transparent; 
    padding: 24px 0px;
    text-align: center;
    font-size: 24px;
    font-weight: 700;
    color: #ffffff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15); 
}

.event-card-body {
    padding: 50px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 1;
    justify-content: space-between; 
}

.event-img-box {
    height: 240px; 
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 30px;
    width: 100%;
}
.event-img-box img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    transform: scale(1.1); 
}

.event-text-center {
    text-align: center;
    width: 100%;
}
.event-desc-main {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 12px;
    color: #ffffff;
}
.event-desc-sub {
    font-size: 18px;
    color: #cccccc;
    font-weight: 400;
}

.event-prize-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
    
    /* 핵심 수정 사항 */
    width: fit-content;    /* 내용물(글자) 길이만큼만 너비 차지 */
    margin: 0 auto;        /* 부모 박스 안에서 가로 중앙 정렬 */
    text-align: left;      /* 목록 내부의 글자는 왼쪽 정렬 유지 (가독성) */
}

.prize-item {
    display: flex;
    align-items: center;
    gap: 15px;
    width: 100%;           /* 각 항목이 list 너비를 꽉 채우도록 */
}

.prize-rank {
    background-color: #ffffff;
    color: #000000;
    font-size: 16px;
    font-weight: 700;
    padding: 6px 16px;
    border-radius: 20px; 
    min-width: 55px;
    text-align: center;
}
.prize-name {
    font-size: 18px;
    color: #ffffff;
    font-weight: 700;
}

.shortcut-section { padding: 180px 0 200px; text-align: center; position: relative; overflow: hidden; }
.shortcut-section .container { position: relative; z-index: 10; }
.shortcut-title { font-family: 'EliceDigitalCoding', sans-serif !important; font-size: 40px; letter-spacing: -1px; line-height: 1.5; margin-bottom: 60px; }
.shortcut-socials { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; }
.btn-white-link { display: inline-block; background-color: #ffffff; color: #000000; padding: 16px 40px; border-radius: 50px; font-size: 16px; font-weight: 700; text-decoration: none; transition: transform 0.2s ease, box-shadow 0.2s ease; }
.btn-white-link:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(255, 255, 255, 0.15); }

.footer { padding: 60px 0; border-top: 1px solid #222; background-color: #050505; position: relative; z-index: 10; }
.footer-container { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.footer-corp { font-size: 14px; font-weight: 700; color: #888; margin-bottom: 8px; }
.footer-desc { font-size: 12px; color: #555; line-height: 1.6; }
.subtitle-group {
    display: block !important;       /* 가로 정렬(flex)을 완전히 해제 */
    width: 100% !important;
    text-align: center !important;    /* 중앙 정렬 */
    margin-bottom: 40px !important;
    position: relative;
    z-index: 20;
}

.hero-subtitle { 
    display: block !important;       /* 강제 줄바꿈 */
    font-size: 24px !important; 
    font-weight: 700 !important; 
    letter-spacing: -0.02em; 
    opacity: 0.9;
    margin-bottom: 5px !important;   /* 아래 문구와의 간격 */
}

.hero-cto {
    display: block !important;       /* 강제 줄바꿈 */
    font-family: 'Caveat', cursive !important; /* 폰트명 수정 */
    font-size: 56px !important;      /* 넓은 화면에 맞춰 크기 키움 */
    color: #ffffff;
    line-height: 1.1 !important;
    margin: 0 auto !important;
}
@media (max-width: 768px) {
    /* 가로 스크롤 강제 차단 */
    html, body {
        overflow-x: hidden !important;
        width: 100%;
    }
    
    .container { padding: 0 16px; }
    .navbar { display: none !important; } 
    .logo-svg { height: 18px; } 
    .nav-links { display: none !important; }

   .hero { 
        padding: 150px 0 100px; 
        min-height: 70vh; 
        background-color: transparent !important;
        position: relative;
        z-index: 50 !important;
    }
    .hero-title { font-size: 32px; line-height: 1; letter-spacing: -0.05em; margin-bottom: 10px; }

    .hero-subtitle { font-size: 16px !important; }
    .hero-cto { font-size: 38px !important; }
    .subtitle-group { margin-bottom: 30px !important; }
    .hero .btn-hero-primary { width: 100%; display: block; box-sizing: border-box; padding: 16px 0; margin: 0 !important; }
    
    .mobile-only { display: block; }
    #ascii-globe { 
        display: block !important; 
        font-size: 5.5px !important; 
        line-height: 6px !important; 
        top: 150% !important; 
        left: 50%; 
        opacity: 1; 
        z-index: -1; 
    }

    .key-message-section { 
        height: 150vh !important; 
        margin-top: -10vh !important; 
        margin-bottom: 0 !important; 
        background-color: transparent !important;
        position: relative;
        z-index: 50 !important;
    }
    .key-message-sticky { height: 100vh; display: flex; align-items: center; justify-content: center; }
    .key-message-text { font-size: 26px; width: 100%; padding: 0 20px; line-height: 1.5; text-align: center; }

   .schedule-section {
        padding: 40px 0 60px 0 !important; /* 상단 패딩을 60px에서 40px로 축소 */
        margin-top: -40px !important;      /* 마이너스 마진으로 섹션 전체를 위로 당김 */
        background-color: transparent !important;
        position: relative;
        z-index: 50 !important;
        overflow: hidden;
    }
    .section-header { 
        margin-bottom: 40px; 
        position: relative;
        z-index: 60;
    }
    .section-title { font-size: 26px !important; line-height: 1.3; margin-bottom: 15px; padding: 0; }
    
    .shortcut-section .section-title { 
        font-size: 26px !important; 
        line-height: 1.3; 
        margin-bottom: 40px !important; 
        padding: 0; 
    }
    
    .section-subtitle { font-size: 14px; padding: 0 10px; }
    
  .culture-section { 
        padding: 60px 0 20px 0 !important; /* 하단 여백 60px -> 20px */
        background-color: transparent !important; 
        overflow: hidden; 
    }

    .schedule-list { gap: 8px; }
    
    .schedule-row { 
        display: block;
        padding: 24px 20px !important; 
        background-color: rgba(255, 255, 255, 0.1); 
        border-radius: 10px; 
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); 
        position: relative;
    }
    
    .cell-date { 
        display: flex; 
        align-items: baseline; 
        text-align: left;
        padding: 0 !important; 
        margin-bottom: 15px;
    }
    .date-num { font-size: 34px !important; line-height: 1; letter-spacing: -1px; }
    .date-day { font-size: 16px !important; margin-left: 8px; color: #aaaaaa; }
    
    .cell-time { 
        position: absolute;
        top: 24px;
        right: 20px;
        font-size: 13px !important; 
        font-weight: 700;
        color: #ffffff; 
        background-color: rgba(255, 255, 255, 0.15); 
        padding: 6px 12px !important; 
        border-radius: 20px; 
        text-align: center;
        letter-spacing: 0.5px;
    }
    
    .cell-info { 
        width: 100%; 
        text-align: center !important; 
        padding: 20px 0 0 0 !important; 
        margin-top: 0 !important; 
        border-top: 1px solid rgba(255, 255, 255, 0.15) !important; 
        display: flex !important;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }

    .uni-name { font-size: 22px !important; margin-bottom: 6px !important; text-align: center !important; width: 100%; }
    .uni-loc { font-size: 15px !important; color: #bbbbbb !important; text-align: center !important; width: 100%; }

    .schedule-notice {
        margin-top: 30px;
        font-size: 14px;
        padding: 0 10px;
    }

    .main-placeholder img { 
        aspect-ratio: 16 / 9 !important; 
        height: auto; 
    }
    
    .sub-img-item { 
        width: 160px; 
        border-radius: 10px; 
        overflow: hidden;
    } 
    .sub-img-text { 
        font-size: 13px !important; 
        line-height: 1.4 !important; 
        padding: 10px 12px 0 12px !important; 
        margin-bottom: 12px !important; 
        height: 47px !important; 
        flex-grow: 0 !important;
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        word-break: break-all !important;
        white-space: normal !important;
    }

    /* [수정] 이벤트 섹션 어두워짐 방지 (z-index 추가) */
.event-final-section { 
        /* 상단 패딩을 20px -> 40px로 늘려 아주 조금 아래로 내림 */
        padding: 80px 0 60px 0 !important; 
        background: transparent !important; 
        
        /* [중요] 어두운 배경에 묻히지 않도록 최상단으로 끌어올림 */
        position: relative !important;
        z-index: 50 !important;
        
        overflow: hidden;
    }
    .event-title { font-size: 26px !important; }
    .event-cards-wrapper { grid-template-columns: 1fr; gap: 12px; padding: 0; }
    
    .event-card { 
        background-color: rgba(255, 255, 255, 0.1); 
        border-radius: 10px; 
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .event-card-header { 
        padding: 24px 0 !important; 
        margin: 0 20px; 
        font-size: 20px; 
        border-bottom: 1px solid rgba(255, 255, 255, 0.15) !important; 
        text-align: center !important; 
        box-sizing: border-box;
    }

    .event-card-body { 
        padding: 40px 20px !important; 
        display: flex;
        flex-direction: column;
        align-items: center; 
    }
    
    .event-img-box { height: 150px; margin-bottom: 25px; width: 100%; display: flex; justify-content: center; }
    .event-desc-main { font-size: 22px; margin-bottom: 10px; text-align: center; }
    .event-desc-sub { font-size: 16px; color: #bbbbbb; text-align: center; }
    
    .event-prize-list { width: fit-content; margin: 0 auto; }
    .prize-item { gap: 10px; margin-bottom: 12px; }
    .prize-rank { padding: 5px 12px; font-size: 13px; min-width: 48px; }
    .prize-name { font-size: 16px; }

    /* [수정] 숏컷 섹션 어두워짐 방지 (z-index 추가) */
    .shortcut-section { 
        padding: 80px 0 100px; 
        background-color: transparent !important; 
        position: relative;
        z-index: 50 !important;
    }
    .shortcut-socials { flex-direction: column; width: 100%; padding: 0; gap: 15px; }
    
    .btn-white-link { 
        width: 85%; 
        box-sizing: border-box; 
        margin: 0 auto !important; 
        text-align: center; 
        padding: 18px 0; 
        font-size: 16px;
        font-weight: 700;
        
        background-color: #ffffff !important; 
        color: #000000 !important;             
        border: none !important;
        border-radius: 100px !important; 
        transition: opacity 0.2s;
        display: block;
    }
    .btn-white-link:active {
        opacity: 0.8; 
    }

    .footer { padding: 40px 0; text-align: center; background-color: #050505; position: relative; z-index: 50 !important; }
    .footer-container { align-items: center; }

    .gradient-bg { z-index: 0 !important; }
    body::before { z-index: 1 !important; }

    .gradients-container {
        filter: url(#goo) blur(80px) !important; 
        -webkit-filter: url(#goo) blur(80px) !important; 
        transform: translateZ(0); 
    }

    .g1, .g2, .g3, .g4, .g5, .interactive {
        mix-blend-mode: var(--blending) !important; 
        opacity: 1 !important; 
        width: 150vw !important; 
        height: 150vw !important;
    }
}