@charset "euc-kr";

:root {
	--navy: #071a43;--navy-2: #0b2d70;--blue: #2767dc;--sky: #9bc9ff;--ink: #102b59;--muted: #5c7092;--pale: #f3f7ff;--line: #d7e3f7;--white: #fff;--content: 1400px;--base-font: 18px;

	/* 상단 고정 헤더 / 메뉴 이동 위치 계산용 */
	--header-h: 111px;      /* 헤더 높이 (nav-wrap 110px + 하단 라인 1px) */
	--section-pad: 76px;    /* .section 상단 여백 */
	--anchor-gap: 36px;     /* 메뉴 이동 시 헤더와 제목 사이에 남길 간격 */
}

@media screen and (max-width:768px) {
	:root { --base-font: 16px; }
}


* {box-sizing: border-box;}
/* 메뉴 이동 시 섹션 상단 여백 일부를 헤더 아래로 감춰서 헤더와 제목 사이 간격을 줄임 */
html {scroll-behavior: smooth;scroll-padding-top: calc(var(--header-h) - var(--section-pad) + var(--anchor-gap));}
/* 헤더가 fixed라서 헤더 높이만큼 본문을 내려줌 */
body {margin: 0;padding-top: var(--header-h);color: var(--ink);font-family: "Escoredream", "SUIT", "Pretendard", "Noto Sans KR", "Malgun Gothic", sans-serif;line-height: 1.7;background: #fff;word-break: keep-all;}

/* 모바일 가로 흰 여백 방지
   - AOS의 fade-left / fade-right / zoom-in 애니메이션이 요소를 화면 밖에서 밀어 넣으면서 가로로 넘침
   - html/body가 아닌 main, footer에서 잘라내므로 상단 헤더 고정에는 영향 없음 */
main, .site-footer {overflow-x: hidden;overflow-x: clip;}

a {color: inherit;text-decoration: none;}
button {font: inherit;}
.container {width: min(var(--content), calc(100% - 48px));margin: 0 auto; }

/* 상단 고정 헤더 (PC/모바일 공통)
   sticky는 모바일 브라우저마다 overflow 설정에 따라 풀리는 경우가 있어 fixed로 고정 */
.site-header {position: fixed;top: 0;left: 0;right: 0;width: 100%;z-index: 1000;color: #fff;background: rgba(5, 23, 59, .96);border-bottom: 1px solid rgba(180, 210, 255, .25);backdrop-filter: blur(14px);-webkit-backdrop-filter: blur(14px);}
.nav-wrap {min-height: 110px;display: flex;align-items: center;justify-content: space-between;gap: 24px;}

/* 로고 */
.logo h1 {position:relative;display:flex;align-items: center; font-weight:600;font-size:1.5em;letter-spacing:-1px;color:#fff;}
.logo h1 a {color:inherit;}
.logo h1 span {position:relative;}
.logo h1 img {margin:-5px 15px 0 0;position:relative;}
/*.logo h1 span:after {content:"";display:block;position:absolute;left: 203px;top:50% !important;width:1px;background-color:#fff;height:21px;transform: translateY(-50%);}*/

@media screen and (max-width:1024px) {/* 로고 - 태블릿 */
	.logo  {display:inline-block;}
	.logo img { width: 300px; }
	.logo h1 a.mainlogo img:nth-of-type(1) {display: block;margin: 5px auto;}
}

@media screen and (max-width:768px) {/* 로고 - 모바일 */
	.logo h1 img {margin:0 10px 0 0 !important;width:200px;}
	.logo h1 {font-size:16px;}
	.logo h1 span:after {left:138px !important;height:15px;}
}

/* 메뉴 */
.nav-links {display: flex;align-items: center;gap: clamp(16px, 2.4vw, 34px);}
.nav-links a {color: #eaf2ff;font-size: 20px;font-weight: 500;transition: color .2s ease; cursor: pointer; }
.nav-links a:hover, .nav-links a:focus-visible {color: #78DC96;}
.menu-toggle {display: none;color: #fff;background: transparent;border: 1px solid rgba(255, 255, 255, .35);border-radius: 8px;padding: 8px 12px;cursor: pointer;}
.nav-links .regi-btn { display: inline-flex; align-items: center; justify-content: center; padding: 7px 24px; border-radius: 50px; background: #78DC96; color: #073c4c; font-weight: 600; transition: all .3s ease; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12); }
.nav-links .regi-btn span { transition: transform .3s ease; }
.nav-links .regi-btn:hover { background: #96ffca; color: #073c4c;transform: translateY(-2px); /*box-shadow: 0 6px 20px rgba(65, 145, 255, 0.3);*/ }

/* 메인 비주얼 */
.hero {position: relative;overflow: hidden;isolation: isolate;color: #fff; height: calc(100vh - var(--header-h));display: flex;align-items: center; justify-content:center; background: url('/images/visu.png') center no-repeat; background-size: cover; }
.hero::before {content: "";position: absolute;z-index: 1;inset: 0;opacity: .5;background-size: 7px 7px;background-color: #00113a;}
.hero-content {position: relative;z-index: 2; display: flex;align-items: flex-end;justify-content:center; flex-direction:column; text-align: right; }
.eyebrow {display: inline-block;margin: 0 0 12px;color: #91c4ff;font-size: 14px;font-weight: 600;letter-spacing: .18em;text-transform: uppercase;}
.hero-content .eyebrow { font-family: "HannamJayoo"; color: #78DC96; font-size: clamp(25px, 3.5vw, 35px); letter-spacing: 0; line-height: 1.2; margin-top: 0.5em; font-weight: 500;}
.hero h1, .section-heading h2 {font-family: "HannamJayoo", sans-serif;}
.hero h1 {font-family: "HannamJayoo"; max-width: 720px;margin: 0;font-size: clamp(36px, 6vw, 62px);line-height: 1.15;font-weight: 500;}
.hero h1 span {color: #a9d2ff;}
.hero-copy {margin: 22px 0 0;color: #dceaff;font-size: 19px;}
.hero-meta {margin-top: 20px;color: #f3f7ff;font-weight: 500; font-size: clamp(16px, 2.5vw, 25px); display: flex;align-items: flex-end;justify-content:center; flex-direction:row;}
.hero-meta span {display: inline-flex;align-items: center;}
.hero-meta span + span:before { content:''; display: inline-block; width: 1px; height: 20px; background: #fff; margin: 0 10px;}
.meta-icon {color: #9ccaff;font-size: 19px;}
.hero-actions {width: min(var(--content), calc(100% - 48px)); height: 100%; display: flex;flex-wrap: wrap; gap: 12px;justify-content:flex-end; align-items:flex-start; margin-top: 2em; }
.btn {display: inline-flex;align-items: center;justify-content: center;gap: 12px;min-height: 46px;padding: 0 23px;border-radius: 999px;border: 1px solid transparent;font-size: clamp(16px, 3vw, 18px); font-weight: 600;transition: transform .2s, background .2s;}
.btn:hover {transform: translateY(-2px);}
.btn-primary {background: #78DC96; color: #073c4c;}
.btn-outline {color: #fff;border-color: rgba(255, 255, 255, .55);background: rgba(255, 255, 255, .05);}
.btn-primary:hover { background: #96ffca; color: #073c4c;transform: translateY(-2px); /*box-shadow: 0 6px 20px rgba(65, 145, 255, 0.3);*/ }

/* 스크롤 안내 */
.scroll-indicator {position:absolute;bottom:50px;left:50%;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff;}
.scroll-text {font-size:11px;font-weight:500;letter-spacing:2px;opacity:.8;}
.scroll-mouse {width:22px;height:36px;border:2px solid rgba(255,255,255,.75);border-radius:15px;display:flex;justify-content:center;padding-top:6px;}
.scroll-mouse span {width:3px;height:7px;background:#fff;border-radius:5px;animation:scroll-wheel 1.5s ease-in-out infinite;}
.scroll-arrow {font-size:17px;line-height:1;animation:scroll-arrow 1.5s ease-in-out infinite;}

@keyframes scroll-wheel {0% {transform:translateY(0);opacity:1;} 100% {transform:translateY(10px);opacity:0;}}
@keyframes scroll-arrow {0%,100% {transform:translateY(0);opacity:.5;} 50% {transform:translateY(6px);opacity:1;}}

/* 하단 물결 */
.hero-wave { position: absolute; bottom:-70px; left: -40%; width: 180%; height: 150px; display: block; pointer-events: none; z-index: 100; }
.hero-wave .wave { transform-box: fill-box; transform-origin: center bottom; will-change: transform; }
.hero-wave .wave-back { animation: wave-sway-back 4s ease-in-out infinite alternate; }
.hero-wave .wave-mid { animation: wave-sway-mid 2.5s ease-in-out infinite alternate; }
.hero-wave .wave-front { animation: wave-sway-front 3.5s ease-in-out infinite alternate; }

@keyframes wave-sway-back {
    0% {
        transform: translateX(-3%) scaleY(.94);
    }
    100% {
        transform: translateX(3%) scaleY(1.08);
    }
}

@keyframes wave-sway-mid {
    0% {
        transform: translateX(2%) scaleY(1.04);
    }
    100% {
        transform: translateX(-2%) scaleY(.92);
    }
}

@keyframes wave-sway-front {
    0% {
        transform: translateX(-1.5%) scaleY(.97);
    }
    100% {
        transform: translateX(1.5%) scaleY(1.04);
    }
}

/* 공통 섹션 */
section {position: relative;}
.section {padding: var(--section-pad) 0;}
.section-pale {background:  linear-gradient( 90deg, #F2F7FF 0%, #F2F7FF 30%, rgba(242, 247, 255, 0.95) 42%, rgba(242, 247, 255, 0.65) 58%, rgba(242, 247, 255, 0.15) 75%, rgba(242, 247, 255, 0) 90%), url('/images/overview_bg.jpg') right 0 no-repeat; }

.section-heading {margin-bottom: 30px;}
.section-heading .eyebrow {margin-bottom: 7px;color: #2c67ca; display: block;}
.section-heading h2 { display: inline-block; margin: 0;font-size: clamp(29px, 3vw, 40px);line-height: 1.2;letter-spacing: -.045em; font-weight: 500; }
.section-heading p {margin: 13px 0 0;color: var(--muted);font-size: 18px; line-height: 1.5}
.heading-rule {display: inline-block;width: 42px;height: 2px;vertical-align: middle;margin-left: 10px;background: #80aaff;}

/* 행사개요 */
.overview-grid {display: grid;grid-template-columns: 1.08fr .92fr;gap: 60px;align-items: center;}
.overview-copy {color: #334e78;font-size: 18px;line-height: 1.9;}
.overview-copy p {margin: 0 0 16px;}
.overview-facts {border-left: 1px solid #c7d9f8;padding-left: 42px;display: grid;gap: 24px;}
.fact {display: grid;grid-template-columns: 48px 1fr;gap: 16px;align-items: start;}
.fact-icon {width: 44px;height: 44px;border-radius: 50%;display: grid;place-items: center;background: #EAF2FF;color: #164aab;font-size: 21px;}
.fact-icon img { height: 25px; }
.fact h3 {margin: 0 0 3px; font-weight: 500; font-size: 16px;color: #45618b;}
.fact p {margin: 0;font-size: 16px;font-weight: 500;line-height: 1.5;}
.fact small {display: block;margin-top: 4px;color: var(--muted);font-size: 14px;font-weight: 400;}


/* 사전등록 배너 */
.registration {padding: 0 0 74px;background: var(--pale);}
.register-banner { margin-top: 75px; position: relative;overflow: hidden;display: flex;align-items: center;justify-content: space-between;gap: 28px;padding: 34px 48px;border-radius: 14px;color: #fff;background: radial-gradient(ellipse at 82% 10%, rgba(49, 105, 225, .42), transparent 40%), linear-gradient(110deg, #071a43, #103b8d);}
.register-banner::after {content: "";position: absolute;width: 55%;height: 150%;right: -5%;bottom: -100%;border: 1px solid rgba(108, 164, 255, .45);border-radius: 50%;transform: rotate(-12deg);box-shadow: 0 -12px 0 -11px rgba(108, 164, 255, .45), 0 -25px 0 -24px rgba(108, 164, 255, .35), 0 -38px 0 -37px rgba(108, 164, 255, .25);}
.register-banner>* {position: relative;z-index: 1;}
.register-banner .eyebrow {margin-bottom: 5px;}
.register-banner h2 {margin: 0;font-size: clamp(26px, 3vw, 36px);line-height: 1.2; font-weight: 500; }
.register-banner p {margin: 7px 0 0;color: #d5e5ff;font-size: 14px;}

.register-info {flex: 0 0 300px;min-width: 0;padding-right: 22px;border-right: 1px solid rgba(255, 255, 255, .5);}
.register-info .register-date {display: flex;align-items: center;gap: 6px;margin: 5px 0 0;color: #fff;font-weight: 500;font-size: 17px;}
.register-date svg {width: 14px;height: 14px;fill: none;stroke: currentColor;stroke-width: 1.6;stroke-linecap: round;stroke-linejoin: round;flex-shrink: 0;}
.register-notice {flex: 1;min-width: 0;color: #fff;font-weight: 300;line-height: 1.5;}
.register-btn {flex: 0 0 auto;display: inline-flex;align-items: center;justify-content: center;gap: 8px;min-width: 205px;padding: 12px 18px;border-radius: 30px;background: #78DC96;color: #073c4c;font-weight: 600;text-decoration: none;transition: background .2s, transform .2s;}
.register-btn span {font-size: 17px;line-height: 1;}
.register-btn:hover {background: #96ffca;transform: translateY(-2px);}
.mobile-br {display: none;}


/* =====================================
   사전등록 배너 반응형
===================================== */

/* 태블릿 */
@media (max-width: 1024px) {

    .register-banner {
        gap: 20px;
        padding: 24px 28px;
    }

    .register-info {
        flex: 0 0 240px;
        padding-right: 18px;
    }

    .register-info .register-date {
        font-size: 14px;
    }

    .register-notice {
        font-size: 14px;
    }

    .register-btn {
        min-width: 170px;
        padding: 11px 14px;
        font-size: 13px;
    }

}


/* 작은 태블릿 */
@media (max-width: 768px) {

    .register-banner {
        flex-wrap: wrap;
        gap: 20px;
        padding: 24px;
    }

    .register-info {
        width: 100%;
        flex: 1 1 100%;
        padding: 0 0 16px;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .4);
    }

    .register-info .register-date {
        font-size: 15px;
    }

    .register-notice {
        flex: 1 1 100%;
        font-size: 14px;
        line-height: 1.7;
    }

    .register-btn {
        min-width: 180px;
        margin-left: auto;
    }

}


/* 모바일 */
@media (max-width: 480px) {

    .register-banner {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
        padding: 22px 20px;
        margin-top: 35px;
    }

    .register-info {
        flex: none;
        width: 100%;
        padding-bottom: 16px;
    }

    .register-info .eyebrow {
        font-size: 10px;
    }

    .register-info h2 {
        font-size: 23px;
    }

    .register-info .register-date {
        font-size: 13px;
        gap: 6px;
    }

    .register-date svg {
        width: 14px;
        height: 14px;
    }

    .register-notice {
        flex: none;
        width: 100%;
        font-size: 13px;
        line-height: 1.7;
        word-break: keep-all;
    }

    .register-btn {
        width: 100%;
        min-width: 0;
        margin-left: 0;
        padding: 12px 18px;
        font-size: 13px;
    }

}


/* 작은 모바일 */
@media (max-width: 360px) {

    .register-banner {
        padding: 20px 16px;
    }

    .register-info h2 {
        font-size: 21px;
    }

    .register-info .register-date {
        font-size: 12px;
    }

    .register-notice {
        font-size: 12px;
    }

}



/* 프로그램 */
.program-layout {display: grid;grid-template-columns: .65fr 1.35fr;gap: 48px;align-items: start;}
.program-note {color: var(--muted);font-size: 17px;}
.program-table-inner {overflow-x: auto;border: 1px solid var(--line);border-radius: 9px;background: #fff;}
.program-table {width: 100%;border-collapse: collapse;font-size: 18px;}
.program-table th {padding: 13px 15px;color: #fff;background: #123875;font-weight: 700;text-align: center;}
.program-table td {padding: 13px 15px;text-align: center;border-top: 1px solid var(--line);border-right: 1px solid var(--line);}
.program-table td:last-child, .program-table th:last-child {border-right: 0;}
.program-table tbody tr:nth-child(even) {background: #f7faff;}
.program-table td:first-child {white-space: nowrap;color: #315da5;font-weight: 700;}


/* 연사 */
.speakers {overflow: hidden;color: #fff;background: radial-gradient(ellipse at 86% 0%, rgba(26, 78, 163, .48), transparent 40%), linear-gradient(110deg, #06183b, #0a2354);}
.speakers::before {content: "";position: absolute;left: -5%;bottom: -90px;width: 55%;height: 190px;border: 1px solid rgba(82, 145, 255, .42);border-radius: 50%;transform: rotate(-8deg);box-shadow: 0 -13px 0 -12px rgba(82, 145, 255, .32), 0 -26px 0 -25px rgba(82, 145, 255, .22);}
.speakers .section-heading .eyebrow {color: #91c4ff;}
.speakers .section-heading p {color: #c4d8f7; }
.speaker-layout {display: grid;grid-template-columns: .62fr 1.38fr;gap: 44px;align-items: center;}
.speaker-intro { width: 425px; }
.speaker-controls {display: flex;align-items: center;gap: 10px;margin-top: 26px;}
.slider-btn {width: 40px;height: 40px;display: grid;place-items: center;justify-content:center;border-radius: 50%;border: 1px solid rgba(255, 255, 255, .5);color: #fff;background: rgba(255, 255, 255, .08);cursor: pointer;font-size: 20px;}
.slider-btn:hover {background: rgba(255, 255, 255, .2);}
.speaker-window {overflow: hidden;width: 100%;min-width: 0;}
.speaker-track {display: flex;width: 100%;min-width: 0;flex: 0 0 100%;gap: 16px;transition: transform .45s ease;}
.speaker-card {flex: 0 0 calc((100% - 240px) / 3);min-width: 0;padding: 24px 18px 22px;text-align: center;color:var(--ink);background: #fff;border-radius: 10px;box-shadow: 0 10px 28px rgba(0, 0, 0, .12);}
.speaker-photo {margin: 0 auto 14px;display: grid;place-items: center;border-radius: 50%;color: #315b9d;background: linear-gradient(145deg, #dceaff, #a9cbff);font-size: 32px;font-weight: 800;}
.speaker-photo img { width: 100%; border-radius: 10px;}
.speaker-card h3 {margin: 0;font-size: 18px;}
.speaker-card .affiliation {margin: 3px 0 8px;color: #687c9e;font-size: 15px;}
.speaker-card .topic {margin: 0;color: #315b9d;font-size: 15px;}
.slider-dots {display: flex;justify-content: center;gap: 8px;margin-top: 20px;}
.slider-dot {width: 8px;height: 8px;border: 0;padding: 0;border-radius: 50%;background: #5275b4;cursor: pointer;}
.slider-dot.active {background: #fff;}


/* 연사 카드 버튼 */
.speaker-card-open {display: block;width: 100%;padding: 0;border: 0;background: transparent;color: inherit;font: inherit;cursor: pointer;}
.speaker-card {transition: transform .3s ease, box-shadow .3s ease;}
.speaker-card:hover {transform: translateY(-5px);box-shadow: 0 15px 35px rgba(0, 0, 0, .2);}
.speaker-card-open h3 {margin: 0;font-size: 18px;}
.speaker-card-open .affiliation {margin: 3px 0 8px;color: #687c9e;font-size: 15px;}
.speaker-more {display: inline-block;margin-top: 7px;color: #386bb5;font-size: 10px;font-weight: 800;letter-spacing: 1px;opacity: 0.7;transform: translateY(5px);transition: all .3s ease;}
.speaker-card:hover .speaker-more {opacity: 1;transform: translateY(0);}

/* 연사 약력 팝업 */
.speaker-modal {position: fixed !important;inset: 0;z-index: 999999 !important;display: none;align-items: center;justify-content: center;padding: 20px;visibility: hidden;opacity: 0;pointer-events: none;transition: opacity .3s ease, visibility .3s ease;}
.speaker-modal.active {display: flex;visibility: visible;opacity: 1;pointer-events: auto;}
.speaker-modal-dim {position: absolute;inset: 0;background: rgba(3, 15, 39, .78);backdrop-filter: blur(5px);}
.speaker-modal-box {position: relative;z-index: 1;width: 100%;max-width: 800px;max-height: 85vh;overflow-y: auto;padding: 35px;border-radius: 16px;background: #fff;color: #142d56;box-shadow: 0 25px 80px rgba(0, 0, 0, .3);transform: translateY(25px);transition: transform .3s ease;}
.speaker-modal.active .speaker-modal-box {transform: translateY(0);}

.speaker-modal-close {position: absolute;top: 18px;right: 20px;width: 36px;height: 36px;border: 0;border-radius: 50%;background: #edf3fc;color: #183b70;font-size: 26px;line-height: 1;cursor: pointer;transition: .2s;}
.speaker-modal-close:hover {color: #fff;background: #173d79;}

/* 팝업 상단 (사진/이름) */
.speaker-modal-header {display: flex;align-items: center;gap: 25px;padding-bottom: 28px;border-bottom: 1px solid #e4eaf3;}
.speaker-modal-photo {flex: 0 0 130px;width: 130px;height: 150px;overflow: hidden;border-radius: 10px;background: #eaf1fc;}
.speaker-modal-photo img {width: 100%;height: 100%;object-fit: cover;}
.modal-eyebrow {color: #3978cb;font-size: 11px;font-weight: 800;letter-spacing: 2px;}
.speaker-modal-info h3 {margin: 10px 0 6px;color: #102b57;font-size: 27px;font-weight: 600;}
.speaker-modal-info p {margin: 0;color: #71819a;font-size: 14px;}

/* 팝업 본문 (약력) */
.speaker-modal-body {padding: 25px 0 10px;}
.speaker-modal-body h4 {position: relative;margin: 20px 0 12px;padding-left: 12px;color: #183d76;font-size: 16px;font-weight: 500;}
.speaker-modal-body h4:first-child {margin-top: 0;}
.speaker-modal-body h4::before {content: "";position: absolute;top: -1px;left: 0;width: 3px;height: 16px;border-radius: 3px;background: #4387db;}
.speaker-modal-body ul {margin: 0;padding: 0 0 0 13px;list-style: none;}
.speaker-modal-body li {position: relative;margin-bottom: 9px;padding-left: 12px;color: #586b87;font-size: 14px;line-height: 1.7;word-break: keep-all;}
.speaker-modal-body li::before {content: "";position: absolute;top: 9px;left: 0;width: 4px;height: 4px;border-radius: 50%;background: #82a9dc;}
.speaker-modal-footer {margin-top: 20px;padding-top: 17px;border-top: 1px solid #e4eaf3;color: #91a2bc;font-size: 10px;font-weight: 700;letter-spacing: 1px;}

/* 팝업 - 모바일 */
@media (max-width: 640px) {
	.speaker-modal {padding: 15px;}
	.speaker-modal-box {padding: 35px 22px 25px;max-height: 88vh;border-radius: 12px;}
	.speaker-modal-header {gap: 15px;padding-bottom: 20px;}
	.speaker-modal-photo {flex-basis: 95px;width: 95px;height: 115px;}
	.speaker-modal-info h3 {font-size: 21px;}
	.speaker-modal-info p {font-size: 12px;}
	.speaker-modal-body h4 {font-size: 15px;}
	.speaker-modal-body li {font-size: 13px;}
	.speaker-modal-footer {font-size: 9px;}
}

/* 오시는 길 */
#location { background-position: right bottom; }
.location-grid {display: grid;grid-template-columns: .75fr 1fr 1.05fr;gap: 30px;align-items: center;}
.location-info {display: grid;gap: 20px;}
.location-row {display: grid;grid-template-columns: 28px 1fr;gap: 12px;align-items: start;}
.location-row .symbol {color: #1b58b8;font-size: 20px;}
.location-row .symbol img { height: 25px; }
.location-row strong {display: block;font-size: 17px; font-weight: 500;}
.location-row p {margin: 3px 0 0;color: var(--muted);font-size: 15px; font-weight: 400;}
.map-placeholder {min-height: 190px;overflow: hidden;position: relative;display: grid;place-items: center;border: 1px solid #d2e0f5;border-radius: 10px;background-color: #eaf2ff;background-image: linear-gradient(30deg, transparent 47%, #fff 48%, #fff 51%, transparent 52%), linear-gradient(120deg, transparent 44%, #d0e1f8 45%, #d0e1f8 48%, transparent 49%), linear-gradient(70deg, transparent 65%, #fff 66%, #fff 69%, transparent 70%);background-size: 95px 75px, 120px 95px, 145px 110px;}
.map-pin {display: grid;place-items: center;gap: 15px;color: #123d8a;font-size: 12px;font-weight: 600; text-align: center;}
.map-pin span {display: grid;place-items: center;width: 36px;height: 36px;color: #fff;background: #1c5cc5;border-radius: 50% 50% 50% 0;transform: rotate(-45deg);box-shadow: 0 4px 12px #86aee9;}
.map-pin span b {transform: rotate(45deg);font-size: 17px;}

/* 푸터 */
.site-footer {color: #d8e5fa;background: #061735;padding: 24px 0;border-top: 1px solid rgba(125, 170, 245, .25);font-size: 12px;}
.footer-inner {display: flex;justify-content: space-between;gap: 20px;align-items: center;}
.footer-inner p {margin: 0;}
.footer-copy {color: #91a8cd;text-align: right;font-size: 11px;}


/* =====================================
   반응형 - 태블릿 (900px 이하)
===================================== */
@media (max-width: 900px) {
	:root {
		--header-h: 66px;     /* nav-wrap 65px + 하단 라인 1px */
		--section-pad: 50px;
		--anchor-gap: 25px;
	}

	.nav-wrap { min-height:65px; }
	.menu-toggle {display: inline-flex;}
	/* 모바일 메뉴: 헤더 바로 아래에 펼쳐짐 (헤더 높이가 바뀌어도 맞도록 top:100%) */
	.nav-links {display: none;position: absolute;top: 100%;left: 0;right: 0;padding: 10px 18px 18px;background: #061735;border-bottom: 1px solid rgba(180, 210, 255, .2);flex-direction: column;align-items: stretch;gap: 15px;max-height: calc(100vh - var(--header-h));overflow-y: auto;}
	.nav-links.open {display: flex;}
	.nav-links a {padding: 12px 5px;border-bottom: 1px solid rgba(255, 255, 255, .08);font-size: 14px;}
	.nav-links .regi-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 24px; border-radius: 50px;  background: #78DC96; color: #073c4c; font-weight: 800; transition: all .3s ease; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12); }
	.nav-links .regi-btn span { transition: transform .3s ease; }
	.nav-links .regi-btn:hover { background: #96ffca; color: #073c4c; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(65, 145, 255, 0.3); }


	.overview-grid {gap: 32px;}
	.overview-facts {padding-left: 25px;}
	.program-layout, .speaker-layout {grid-template-columns: 1fr;gap: 28px;}
	.program-table {font-size: 16px;}

	.speaker-intro {display: flex;justify-content: space-between;align-items: end;gap: 20px;}
	.speaker-intro .section-heading {margin-bottom: 0;}
	.speaker-controls {margin-top: 0;}
	.location-grid {grid-template-columns: 1fr 1fr;}
	.location-grid .section-heading {grid-column: 1 / -1;margin-bottom: 0;}

	.hero { padding: 5vh 0; }
	.hero-actions { position: relative; justify-content:flex-end; height: unset;}
	.hero-content {justify-content:center; gap:20px; }
}


/* =====================================
   반응형 - 모바일 (640px 이하)
===================================== */
@media (max-width: 640px) {
	:root {
		--header-h: 67px;     /* nav-wrap 66px + 하단 라인 1px */
		--section-pad: 58px;
		--anchor-gap: 28px;
	}

	.container {width: min(100% - 36px, var(--content));}
	.nav-wrap {min-height: 66px;}
	.brand {font-size: 15px;}
	.brand-mark {height: 32px;}

	.hero {min-height: 520px;}
	.hero-content {padding: 70px 0 112px;}
	.hero h1 {font-size: clamp(34px, 10vw, 48px);}
	.hero-copy {font-size: 17px;}
	.hero-meta {font-size: 15px; margin-top: 0;}
	.hero-wave {height: 88px;}
	.scroll-indicator {bottom:20px;gap:7px;}
	.scroll-text {font-weight:600;}
	.scroll-mouse {width:18px;height:31px;}
	.scroll-mouse span {height:4px;}
	.scroll-arrow {font-size:15px;}

	#overview .overview-copy {padding: 22px 20px;font-size: 16px;}
	#overview .overview-facts {padding: 22px 20px;}
	.overview-grid {grid-template-columns: 1fr;gap: 26px;}
	.overview-copy {font-size: 16px;}
	.overview-facts {border-left: 0;border-top: 1px solid #c7d9f8;padding: 24px 0 0;}
	.register-banner {align-items: flex-start;flex-direction: column;padding: 28px 24px; margin-top: 30px; }
	.register-banner .btn {min-width: 0;width: 100%;}
	.program-layout {gap: 22px;}
	.speaker-intro {align-items: flex-start;flex-direction: column;}
	.speaker-card {flex-basis: calc((100% - 14px) / 4);padding: 20px 12px;}
	.speaker-track {gap: 14px;}
	.location-grid {grid-template-columns: 1fr;}
	.location-grid .section-heading {grid-column: auto;}
	.map-placeholder {min-height: 170px;}
	.footer-inner {align-items: flex-start;flex-direction: column;}
	.footer-copy {text-align: left;}
}

@media (max-width: 380px) {
	.hero-meta {flex-direction: column;}
}


/* =====================================
   메인 비주얼 동적 효과
===================================== */

/* 배경 이미지를 별도 레이어로 분리 → 천천히 확대/축소 + 마우스 패럴랙스 */
.hero {background: #00113a;}
.hero::after {content: "";position: absolute;inset: -4%;z-index: 0;background: url('/images/visu.png') center / cover no-repeat;
	translate: var(--px, 0px) var(--py, 0px);transition: translate .8s ease-out;
	animation: hero-kenburns 20s ease-in-out infinite alternate;}
@keyframes hero-kenburns {0% {scale: 1;} 100% {scale: 1.12;}}

/* 어두운 오버레이 + 흐르는 그리드 라인 */
.hero::before {opacity: 1;background-color: rgba(0, 17, 58, .55);
	background-image: linear-gradient(rgba(120, 220, 150, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(120, 220, 150, .07) 1px, transparent 1px);
	background-size: 60px 60px;animation: hero-grid 18s linear infinite;}
@keyframes hero-grid {to {background-position: 0 60px, 60px 0;}}

/* 연결되는 점(파티클) 캔버스 */
.hero-particles {position: absolute;inset: 0;z-index: 2;width: 100%;height: 100%;pointer-events: none;}

/* 위에서 아래로 지나가는 스캔 라인 */
.hero-scanline {position: absolute;inset: 0;z-index: 2;overflow: hidden;pointer-events: none;}
.hero-scanline::after {content: "";position: absolute;left: 0;right: 0;top: -140px;height: 140px;
	background: linear-gradient(to bottom, transparent, rgba(120, 220, 150, .06) 55%, rgba(120, 220, 150, .28));
	border-bottom: 1px solid rgba(120, 220, 150, .55);
	animation: hero-scan 8s cubic-bezier(.45, 0, .55, 1) 1.2s infinite;}
@keyframes hero-scan {0% {top: -140px;} 65%, 100% {top: 100%;}}

/* 글자 영역: 마우스 반대 방향으로 살짝 이동 + 스크롤 시 위로 사라짐 */
.hero-content {z-index: 3;
	translate: calc(var(--px, 0px) * -.6) calc(var(--py, 0px) * -.6 + var(--sp, 0) * 90px);
	opacity: calc(1 - var(--sp, 0) * 1.3);
	transition: translate .8s ease-out;}

/* 타이틀: 줄 단위로 아래에서 올라오며 등장 */
.hero-title .line {display: block;overflow: hidden;padding-bottom: .1em;}
.hero-title .line > span {display: inline-block;color: #fff;transform: translateY(110%);opacity: 0;
	animation: hero-line-up 1.1s cubic-bezier(.2, .8, .2, 1) .2s forwards;}
.hero-title .line:nth-child(2) > span {animation-delay: .45s;}
@keyframes hero-line-up {to {transform: translateY(0);opacity: 1;}}

/* 타이틀 두 번째 줄: 빛이 지나가는 효과 */
.hero-title .shine {background: linear-gradient(100deg, #fff 0%, #fff 42%, #78DC96 50%, #fff 58%, #fff 100%);background-size: 250% 100%;background-position: 100% 0;
	-webkit-background-clip: text;background-clip: text;color: transparent !important;
	animation: hero-line-up 1.1s cubic-bezier(.2, .8, .2, 1) .45s forwards, hero-shine 5s ease-in-out 2s infinite;}
@keyframes hero-shine {0% {background-position: 100% 0;} 50%, 100% {background-position: 0% 0;}}

/* 영문 부제: 타이핑 효과 (JS) */
.hero-typing {min-height: 2.4em;opacity: 0;animation: hero-fade-in .4s ease .8s forwards;}
.hero-typing::after {content: "";display: inline-block;width: 2px;height: .9em;margin-left: 5px;vertical-align: -.08em;background: #78DC96;animation: hero-caret .9s steps(1) infinite;}
@keyframes hero-caret {50% {opacity: 0;}}
@keyframes hero-fade-in {to {opacity: 1;}}

/* 일자/장소, 버튼: 순서대로 등장 */
.hero-meta, .hero-actions {opacity: 0;transform: translateY(24px);animation: hero-fade-up .9s ease forwards;}
.hero-meta {animation-delay: 1s;}
.hero-actions {animation-delay: 1.25s;}
@keyframes hero-fade-up {to {opacity: 1;transform: translateY(0);}}

/* 사전등록 버튼: 퍼지는 빛 + 화살표 이동 */
.hero-actions .btn-primary {animation: hero-pulse 2.6s ease-out 2.5s infinite;}
.hero-actions .btn-primary span {display: inline-block;transition: transform .3s ease;}
.hero-actions .btn-primary:hover span {transform: translateX(5px);}
@keyframes hero-pulse {0% {box-shadow: 0 0 0 0 rgba(120, 220, 150, .6);} 70% {box-shadow: 0 0 0 18px rgba(120, 220, 150, 0);} 100% {box-shadow: 0 0 0 0 rgba(120, 220, 150, 0);}}

/* 모바일: 그리드 간격을 줄이고 스캔 라인을 얇게 */
@media (max-width: 640px) {
	.hero::before {background-size: 40px 40px;}
	@keyframes hero-grid {to {background-position: 0 40px, 40px 0;}}
	.hero-scanline::after {height: 90px;top: -90px;}
}

/* =====================================
   맨 위로 가기 버튼
===================================== */
.to-top {position: fixed;right: 28px;bottom: 28px;z-index: 900;width: 56px;height: 56px;padding: 0;border: 0;border-radius: 50%;
	display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 1px;
	color: #fff;background: rgba(7, 26, 67, .92);box-shadow: 0 8px 24px rgba(0, 0, 0, .25);cursor: pointer;
	opacity: 0;visibility: hidden;transform: translateY(20px) scale(.9);
	transition: opacity .35s ease, visibility .35s ease, transform .35s ease, background-color .25s ease;
	-webkit-tap-highlight-color: transparent;}
.to-top.show {opacity: 1;visibility: visible;transform: translateY(0) scale(1);}
.to-top:hover {background: #0b2d70;}
.to-top:hover .to-top-arrow {transform: translateY(-3px);}
.to-top:focus-visible {outline: 2px solid #78DC96;outline-offset: 3px;}

/* 스크롤 진행률을 보여주는 테두리 */
.to-top-ring {position: absolute;inset: 0;width: 100%;height: 100%;transform: rotate(-90deg);pointer-events: none;}
.to-top-ring circle {fill: none;stroke: #78DC96;stroke-width: 2.5;stroke-linecap: round;
	stroke-dasharray: 150.8px;stroke-dashoffset: calc(150.8px - 150.8px * var(--progress, 0));transition: stroke-dashoffset .1s linear;}

.to-top-arrow {width: 18px;height: 18px;fill: none;stroke: currentColor;stroke-width: 2.4;stroke-linecap: round;stroke-linejoin: round;transition: transform .25s ease;}
.to-top-text {font-size: 10px;font-weight: 700;letter-spacing: .08em;line-height: 1;}

@media (max-width: 640px) {
	.to-top {right: 16px;bottom: 16px;width: 48px;height: 48px;}
	.to-top-arrow {width: 16px;height: 16px;}
	.to-top-text {font-size: 9px;}
}

/* 움직임 줄이기 설정 사용자 */
@media (prefers-reduced-motion: reduce) {html {scroll-behavior: auto;}
	*, *::before, *::after {transition-duration: .01ms !important;animation-duration: .01ms !important;animation-iteration-count: 1 !important;}
}
