@charset "utf-8";
/* =========================================================
   메인 : 메인비주얼 / 행사개요·키워드 / 공지사항
   기준 시안 1920px (A안_01-1.메인)
   ========================================================= */

/* ---------- 메인비주얼 ---------- */
.main_visual{
    position: relative;
    z-index: 1;
    padding: clamp(40px, 8.8vw, 169px) 0 clamp(60px, 7.5vw, 144px);
}
.main_visual .mv_bg{
    position: absolute;
    top: clamp(40px, 8.4vw, 161px);
    left: 0;
    z-index: -1;
    width: 100%;
    aspect-ratio: 1920 / 1494;
    background: url(../images/main/main_visual_bg.jpg) center top / 100% auto no-repeat;
    pointer-events: none;
}
.main_visual .mv_inner{
    position: relative;
}
.main_visual .mv_tit img{
    display: block;
    width: 100%;
    height: auto;
    /* 흰 배경 이미지 → 곱하기로 배경(글로우)이 비치게 */
    mix-blend-mode: multiply;
}
.main_visual .mv_txt{
    position: absolute;
    top: 17.8%;
    left: 48.13%;
}
.main_visual .mv_txt p{
    font-family: var(--ff-esa);
    font-size: clamp(16px, 1.3vw, 25px);
    font-weight: 300;
    line-height: 1.4;
    color: #000;
    letter-spacing: -.03em;
    word-break: keep-all;
}
.main_visual .mv_txt .btn_round{
    margin-top: clamp(16px, 1.9vw, 36px);
}

/* ---------- 우주 배경 (행사개요 + 초청연사, 아치 배경) ---------- */
.main_container{
    container-type: inline-size;
}
.main_space{
    position: relative;
    z-index: 2;
    /* 시안 Union(행성) 1920 x 2834 + 하단 #16181d 그라데이션 포함 */
    background: #16181d;
    color: #fff;
    /* 아치 상단 곡선: 시안 Union(2503 x 반경 471.6 @1920) 비율로 바깥쪽을 투명 처리 → 비주얼 배경이 자연스럽게 비침 */
    -webkit-mask-image: radial-gradient(closest-side, #000 calc(100% - 1.5px), transparent 100%), linear-gradient(#000, #000);
    mask-image: radial-gradient(closest-side, #000 calc(100% - 1.5px), transparent 100%), linear-gradient(#000, #000);
    /* --arch-w : 아치 타원 폭 (스크롤 시 100% → 130.36%로 넓어지며 돔이 펴짐, GSAP) */
    -webkit-mask-size: var(--arch-w, 130.36%) 49.125vw, 100% calc(100% - 24.5625vw);
    mask-size: var(--arch-w, 130.36%) 49.125cqw, 100% calc(100% - 24.5625cqw);
    -webkit-mask-position: 50% 0, 0 100%;
    mask-position: 50% 0, 0 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
/* 배경 레이어 : 아치 마스크(.main_space) 안에서 본문 뒤(z-index -1)에 깔림 */
.main_space .space_layer{
    position: absolute;
    inset: 0;
    z-index: -1;
    /* hidden은 스크롤 컨테이너가 되어 캔버스 sticky가 풀리므로 clip */
    overflow: clip;
    pointer-events: none;
}
/* 행성 이미지 (기존 .main_space 배경 그대로) — 스크롤 시 확대·상승(GSAP) */
.main_space .space_bg{
    position: absolute;
    inset: 0;
    background: url(../images/main/space_bg.jpg) center top / max(100%, 1100px) auto no-repeat;
    transform-origin: 50% 20%;
    will-change: transform;
}
/* 별 캔버스 : 화면 높이만큼만 그리고 스크롤 동안 화면에 붙어 있음(sticky) */
.main_space .space_stars{
    position: sticky;
    top: 0;
    display: block;
    width: 100%;
    height: 100vh;
    height: 100lvh;
}

.main_about{
    position: relative;
    padding: clamp(80px, 10.47vw, 201px) 20px clamp(80px, 9.27vw, 178px);
}
.main_about .about_inner{
    position: relative;
    max-width: 1188px;
    margin: 0 auto;
}
.main_about .about_head{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.main_about .about_tit{
    font-family: var(--ff-esa);
    font-size: clamp(30px, 3.385vw, 65px);
    font-weight: 500;
    line-height: 1.2;
    color: #fff;
    letter-spacing: -.03em;
    word-break: keep-all;
}
.main_about .about_sub{
    font-size: clamp(14px, 1.198vw, 23px);
    font-weight: 400;
    line-height: 1.6;
    color: #fff;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.main_about .about_slogan{
    position: relative;
    margin-top: 29px;
    padding-top: 86px;
    font-family: var(--ff-esa);
    font-size: clamp(20px, 1.823vw, 35px);
    font-weight: 300;
    line-height: 1.15;
    color: #fff;
    letter-spacing: -.03em;
    text-shadow: 0 4px 20px #002d68;
    word-break: keep-all;
}
.main_about .about_slogan::before{
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: 1px;
    height: 57px;
    background: rgba(255, 255, 255, .6);
}
.main_about .about_info{
    display: flex;
    justify-content: center;
    gap: 22px;
    width: 100%;
    margin-top: 28px;
}
.main_about .about_info > div{
    display: flex;
    flex: 0 1 500px;
    align-items: center;
    justify-content: center;
    min-width: 0;
    height: 78px;
    padding: 0 30px;
    background: #001c41;
    border: 2px solid rgba(255, 255, 255, .3);
    border-radius: 98px;
}
.main_about .about_info dd{
    margin: 0;
    font-family: var(--ff-esa);
    font-size: clamp(18px, 1.5625vw, 30px);
    font-weight: 500;
    line-height: 1.2;
    color: #fff;
    letter-spacing: -.03em;
    white-space: nowrap;
}

/* 키워드 카드 */
.main_about .keyword{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(24px, 3.07vw, 59px) clamp(24px, 3.02vw, 58px);
    margin-top: clamp(50px, 3.6vw, 69px);
}
.main_about .keyword_list{
    display: contents;
}
.main_about .keyword_item a{
    position: relative;
    display: block;
    aspect-ratio: 565 / 397;
    overflow: hidden;
    border-radius: clamp(30px, 3.125vw, 60px);
    transition: box-shadow .35s;
    isolation: isolate;
}
.main_about .keyword_img{
    position: absolute;
    z-index: -2;
    max-width: none;
    transition: transform .6s ease;
}
/* 시안 크롭 비율 그대로 */
.main_about .keyword_img.ver_city{
    top: -12.4%;
    left: -21.98%;
    width: 139.34%;
    height: 132.22%;
}
.main_about .keyword_img.ver_newspace{
    top: -32.48%;
    left: -16.26%;
    width: 144.96%;
    height: 137.51%;
}
.main_about .keyword_img.ver_ai{
    top: -23.03%;
    left: -17.74%;
    width: 157.05%;
    height: 125.94%;
}
.main_about .keyword_item a::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(226.9deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, .6) 66.94%);
}
.main_about .keyword_cont{
    position: absolute;
    left: 9%;
    bottom: 12.8%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}
.main_about .keyword_ico{
    width: clamp(48px, 3.7vw, 72px);
    height: auto;
}
.main_about .keyword_badge{
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(58px, 4.27vw, 82px);
    height: clamp(38px, 2.8vw, 54px);
    margin-bottom: 8px;
    font-family: var(--ff-esa);
    font-size: clamp(24px, 1.9vw, 36px);
    font-weight: 500;
    line-height: 1;
    color: #fff;
    border: clamp(3px, .237vw, 4.5px) solid #fff;
    border-radius: clamp(12px, .95vw, 18px);
    text-shadow: 0 3.6px 19px rgba(0, 0, 0, .5);
    opacity: .7;
}
.main_about .keyword_tit{
    font-family: var(--ff-esa);
    font-size: clamp(22px, 2.084vw, 40px);
    font-weight: 500;
    line-height: 1.3;
    color: #fff;
    letter-spacing: -.03em;
    text-shadow: 0 4px 21px rgba(0, 0, 0, .5);
    word-break: keep-all;
}
.main_about .keyword_arrow{
    position: absolute;
    top: 8.3%;
    right: 6.2%;
    width: clamp(52px, 4.7vw, 90px);
    height: clamp(52px, 4.7vw, 90px);
    opacity: 0;
    transform: scale(.7);
    transition: opacity .3s, transform .3s;
}
.main_about .keyword_arrow img{
    width: 100%;
    height: 100%;
}
.main_about .keyword_item.is-active a{
    box-shadow: 10px 10px 60px rgba(0, 29, 49, .6);
}
.main_about .keyword_item.is-active .keyword_img{
    transform: scale(1.05);
}
.main_about .keyword_item.is-active .keyword_arrow{
    opacity: 1;
    transform: none;
}
.main_about .keyword_txt{
    padding: clamp(10px, 2vw, 40px) 0 0 7px;
}
.main_about .keyword_txt p{
    font-family: var(--ff-esa);
    font-size: clamp(16px, 1.3vw, 25px);
    font-weight: 300;
    line-height: 1.4;
    color: #fff;
    letter-spacing: -.03em;
    word-break: keep-all;
}
.main_about .keyword_txt .btn_round{
    margin-top: clamp(20px, 1.9vw, 36px);
}

/* ---------- 초청연사 ---------- */
.main_speaker{
    padding: 0 20px clamp(90px, 11.3vw, 217px);
    text-align: center;
}
.main_speaker .speaker_tit{
    font-family: var(--ff-esa);
    font-size: clamp(30px, 4.167vw, 80px);
    font-weight: 500;
    line-height: 1.5;
    color: #fff;
    letter-spacing: -.05em;
    word-break: keep-all;
}
.main_speaker .speaker_tit_sm{
    display: block;
    margin-bottom: -.117em;
    font-size: .75em;
    font-weight: 300;
}
.main_speaker .speaker_tit em{
    font-style: normal;
    background: linear-gradient(110.1deg, #5988C7 2.23%, #fff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
/* 연사 카드 영역 : 시안 1589 x 668 비율, 글자·테두리는 영역 폭 비례(cqw) */
.main_speaker .speaker_list{
    position: relative;
    max-width: 1589px;
    margin: 0 auto;
    aspect-ratio: 1589 / 668;
    container-type: inline-size;
}
/* 라인 색 변수 타입 등록 → 연사 교체 시 색이 끊기지 않고 전환 (미지원 브라우저는 즉시 변경) */
@property --l1 { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --l2 { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --l3 { syntax: '<color>'; inherits: true; initial-value: #fff; }
@property --glow { syntax: '<color>'; inherits: true; initial-value: transparent; }
/* 부채꼴 배치 : 모든 카드를 가운데에 겹쳐 놓고, 카드 아래쪽 먼 지점(transform-origin)을 축으로 회전 */
.main_speaker .speaker_card{
    position: absolute;
    top: 5%;
    left: 50%;
    width: 24.5%;
    margin-left: -12.25%;
    aspect-ratio: 4 / 5;
    transform-origin: 50% 530%;
    /* --fy : 등장 모션용 세로 이동 (GSAP) */
    transform: translateY(var(--fy)) rotate(var(--deg));
    /* 카드 영역(li)은 크기 축소 전 사각형이라, 실제 보이는 카드(.speaker_frame)만 마우스 반응 */
    pointer-events: none;
    --deg: 0deg;
    --fy: 0px;
    transition: --l1 .7s, --l2 .7s, --l3 .7s, --glow .7s;
}
/* 카드 : 그라데이션 라인(패딩 영역 배경) + 빛번짐, 뒤쪽 카드일수록 작게 */
.main_speaker .speaker_frame{
    position: relative;
    height: 100%;
    padding: .16cqw;
    background: linear-gradient(160deg, var(--l1) 0%, var(--l2) 45%, var(--l3) 100%);
    border-radius: 1.3cqw;
    box-shadow: 0 0 1.1cqw var(--glow), 0 1cqw 2.4cqw rgba(0, 0, 0, .55);
    transform: scale(var(--s, 1));
    pointer-events: auto;
    transition: transform .5s cubic-bezier(.2, .7, .2, 1), box-shadow .5s, filter .5s;
}
.main_speaker .speaker_img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 20%;
    border-radius: 1.15cqw;
}
/* 연사 정보 */
.main_speaker .speaker_info{
    position: absolute;
    left: 50%;
    bottom: 11%;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-family: var(--ff-esa);
    line-height: 1.5;
    color: #fff;
    letter-spacing: -.05em;
    white-space: nowrap;
    text-shadow: 0 .2cqw .8cqw rgba(0, 0, 0, .6);
    transform: translateX(-50%);
}
.main_speaker .speaker_txt{
    font-size: 1.007cqw;
    font-weight: 300;
}
.main_speaker .speaker_name{
    font-size: 1.573cqw;
    font-weight: 500;
}
/* 연사 교체 시 기존 사진 위에 겹쳐 크로스페이드되는 다음 사진 (JS에서 생성·제거) */
.main_speaker .speaker_img.is-next{
    position: absolute;
    top: .16cqw;
    left: .16cqw;
    /* img는 대체 요소라 inset만으로는 늘어나지 않고 원본 크기로 뜸 → 크기 직접 지정 (프레임 패딩 .16cqw x 2 제외) */
    width: calc(100% - .32cqw);
    height: calc(100% - .32cqw);
}
/* 카드 위치별 회전각(deg)·크기(s), 가운데 카드가 가장 위 */
.main_speaker .speaker_card.ver_1{ --deg: -15deg; --s: .8; z-index: 1; }
.main_speaker .speaker_card.ver_2{ --deg: -8.5deg; --s: .86; z-index: 2; }
.main_speaker .speaker_card.ver_3{ z-index: 3; }
.main_speaker .speaker_card.ver_4{ --deg: 8.5deg; --s: .86; z-index: 2; }
.main_speaker .speaker_card.ver_5{ --deg: 15deg; --s: .8; z-index: 1; }
/* 라인 그라데이션(l1~l3)·빛번짐(glow) : 연사 사진 배경색에 맞춤 (JS speakers 배열의 line 값 → line_* 클래스) */
.main_speaker .speaker_card.line_green { --l1: #9dffd8; --l2: #2fd49a; --l3: #0d6b63; --glow: rgba(47, 212, 154, .55); }
.main_speaker .speaker_card.line_purple{ --l1: #d6bbff; --l2: #8a4dff; --l3: #3a1fa8; --glow: rgba(138, 77, 255, .55); }
.main_speaker .speaker_card.line_blue  { --l1: #b9e2ff; --l2: #3d8bff; --l3: #1a3fb0; --glow: rgba(61, 139, 255, .6); }
.main_speaker .speaker_card.line_orange{ --l1: #ffd9a6; --l2: #ff8a2a; --l3: #9a3a0c; --glow: rgba(255, 138, 42, .5); }
.main_speaker .speaker_card.line_cyan  { --l1: #a6f4ff; --l2: #1fb8e6; --l3: #0b5a8a; --glow: rgba(31, 184, 230, .55); }

/* 카드 인터랙션 : 마우스 오버(키보드 포커스) 카드가 맨 앞으로 나와 자기 기울기 방향으로 떠오르고 빛번짐 강조, 나머지는 어둡게 */
.main_speaker .speaker_card:hover,
.main_speaker .speaker_card:focus-within{
    z-index: 5;
}
.main_speaker .speaker_card:hover .speaker_frame,
.main_speaker .speaker_card:focus-within .speaker_frame{
    transform: translateY(-7%) scale(calc(var(--s, 1) * 1.06));
    box-shadow: 0 0 2.2cqw var(--glow), 0 0 .5cqw var(--l2), 0 1.8cqw 3.4cqw rgba(0, 0, 0, .6);
}
.main_speaker .speaker_list:hover .speaker_card:not(:hover) .speaker_frame{
    filter: brightness(.55) saturate(.8);
}
@media (prefers-reduced-motion: reduce) {
    .main_speaker .speaker_frame{
        transition: none;
    }
}
/* 연사 그룹 페이지네이션 : 타원형 불릿, 현재 페이지는 가로로 늘어나며 그라데이션 */
.main_speaker .speaker_pagination{
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: clamp(24px, 2.1vw, 40px);
}
.main_speaker .speaker_bullet{
    flex-shrink: 0;
    width: 16px;
    height: 8px;
    padding: 0;
    border: 0;
    /* 50%는 가로로 긴 요소에서 찌그러진 타원이 됨 → 높이 절반 이상 값으로 양끝 반원(캡슐형) 고정 */
    border-radius: 999px;
    background: rgba(255, 255, 255, .35);
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
    transition: width .4s cubic-bezier(.2, .7, .2, 1), background-color .4s;
}
.main_speaker .speaker_bullet:hover{
    background-color: rgba(255, 255, 255, .6);
}
.main_speaker .speaker_bullet.is-active{
    width: 36px;
    background: linear-gradient(90deg, #5988C7, #fff);
}
.main_speaker .speaker_bullet:focus-visible{
    outline: 2px solid #fff;
    outline-offset: 3px;
}
.main_speaker > .btn_round{
    margin-top: 4px;
}

/* ---------- 공지사항 ---------- */
.main_notice{
    position: relative;
    z-index: 0;
    padding: clamp(80px, 7vw, 134px) 0 clamp(90px, 8.5vw, 163px);
    overflow: hidden;
}
.main_notice .notice_deco{
    position: absolute;
    z-index: -1;
    font-family: var(--ff-esa);
    font-size: clamp(48px, 6.77vw, 130px);
    font-weight: 700;
    line-height: 1;
    color: #51647d;
    letter-spacing: -.03em;
    text-transform: uppercase;
    white-space: nowrap;
    opacity: .05;
    pointer-events: none;
}
.main_notice .notice_deco.ver_top{
    top: 14px;
    left: 0;
}
.main_notice .notice_deco.ver_bottom{
    left: 0;
    bottom: 22px;
}
/* 무한 흐름 : 같은 문구를 이어 붙인 트랙(JS 생성)을 절반만큼 이동 후 반복, 위는 왼쪽 / 아래는 오른쪽으로 */
.main_notice .deco_track{
    display: flex;
    width: max-content;
    animation: decoFlow 40s linear infinite;
}
.main_notice .deco_track > span{
    padding-right: .6em;
}
.main_notice .notice_deco.ver_bottom .deco_track{
    animation-direction: reverse;
}
@keyframes decoFlow{
    to{ transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .main_notice .deco_track{
        animation: none;
    }
}
.main_notice .notice_inner{
    position: relative;
    max-width: 1740px;
    margin: 0 auto;
    padding: 0 20px;
}
.main_notice .notice_head{
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 53px;
}
.main_notice .notice_tit{
    font-family: var(--ff-esa);
    font-size: clamp(30px, 3.125vw, 60px);
    font-weight: 500;
    line-height: 1.2;
    color: #111;
    letter-spacing: -.03em;
}
.main_notice .notice_head .btn_round{
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
}
.main_notice .notice_head .btn_round:hover,
.main_notice .notice_head .btn_round:focus-visible{
    transform: translateY(-50%);
}
.main_notice .notice_slide{
    /* 카드 그림자가 잘리지 않도록 여백 확보 */
    margin: clamp(30px, 3vw, 50px) -20px 0;
    padding: 10px 20px 30px;
}
.main_notice .notice_item{
    height: auto;
}
.main_notice .notice_item a{
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 299px;
    padding: 35px 32px 28px;
    background: #f6f8fb;
    border-radius: 30px;
    transition: box-shadow .3s;
    isolation: isolate;
    overflow: hidden;
}
.main_notice .notice_item a::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(93.6deg, #002E6B 2.23%, #007F95 100%);
    opacity: 0;
    transition: opacity .3s;
}
.main_notice .notice_item_tit{
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-family: var(--ff-esa);
    font-size: clamp(20px, 1.3vw, 25px);
    font-weight: 500;
    line-height: 1.4;
    color: var(--navy-txt);
    letter-spacing: -.03em;
    word-break: keep-all;
    transition: color .3s;
}
.main_notice .notice_item_txt{
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    margin-top: 17px;
    font-size: 16px;
    font-weight: 300;
    line-height: 25px;
    color: #111;
    letter-spacing: -.03em;
    word-break: keep-all;
    transition: color .3s;
}
.main_notice .notice_item_date{
    margin-top: auto;
    padding-top: 24px;
    font-size: 16px;
    font-weight: 300;
    line-height: 25px;
    color: var(--gray-txt);
    transition: color .3s;
}
.main_notice .notice_item_arrow{
    position: absolute;
    right: 26px;
    bottom: 17px;
    width: 60px;
    height: 60px;
    opacity: 0;
    transform: scale(.7);
    transition: opacity .3s, transform .3s;
}
.main_notice .notice_item_arrow img{
    width: 100%;
    height: 100%;
}
.main_notice .notice_item.is-active a{
    box-shadow: 0 4px 20px rgba(0, 29, 49, .6);
}
.main_notice .notice_item.is-active a::before{
    opacity: 1;
}
.main_notice .notice_item.is-active .notice_item_tit,
.main_notice .notice_item.is-active .notice_item_txt,
.main_notice .notice_item.is-active .notice_item_date{
    color: #fff;
}
.main_notice .notice_item.is-active .notice_item_arrow{
    opacity: 1;
    transform: none;
}
.main_notice .notice_pagination{
    display: none;
}


/* ---------- 인터랙션 공통 (레코너스 참고) ---------- */
/* 줄 단위 마스크 등장 */
.split_line{
    display: block;
    overflow: hidden;
    padding-bottom: .12em;
    margin-bottom: -.12em;
}
.split_line_in{
    display: block;
}
/* 스크롤 채움 텍스트 : 흐린 글자 위로 밝은 색이 줄 순서대로 채워짐 (--fill, GSAP) — 스크립트 미동작 시 전부 채워진 상태 */
.fill_text{
    color: transparent;
    -webkit-text-fill-color: transparent;
    background-image: linear-gradient(90deg, #fff calc(var(--fill, 110%) - 10%), rgba(255, 255, 255, .28) var(--fill, 110%));
    -webkit-background-clip: text;
    background-clip: text;
}


/* =========================================================
   반응형
   ========================================================= */
@media screen and (max-width: 1280px) {

    .main_about,
    .main_speaker{
        padding-left: 40px;
        padding-right: 40px;
    }
    .main_notice .notice_inner{
        padding: 0 40px;
    }
    .main_notice .notice_head .btn_round{
        right: 40px;
    }
    .main_notice .notice_slide{
        margin-left: -40px;
        margin-right: -40px;
        padding-left: 40px;
        padding-right: 40px;
    }
    .main_notice .notice_pagination{
        position: static;
        display: block;
        margin-top: 24px;
    }
    .main_notice .swiper-pagination-bullet-active{
        background: var(--navy-txt);
    }

}/*E:1280*/


@media screen and (max-width: 1024px) {

    /* 비주얼 문구: 타이포 아래로 */
    .main_visual{
        padding-top: 50px;
    }
    /* 배경 글로우가 섹션 전체를 채우고 아치 아래까지 이어지도록 */
    .main_visual .mv_bg{
        top: 0;
        bottom: -80px;
        aspect-ratio: auto;
        background-size: cover;
        background-position: center 62%;
    }
    .main_visual .mv_txt{
        position: static;
        margin-top: 36px;
        padding: 0 24px;
        text-align: center;
    }
    .main_visual .mv_txt p{
        font-size: 20px;
    }

    .main_about,
    .main_speaker{
        padding-left: 24px;
        padding-right: 24px;
    }
    .main_about .about_info{
        gap: 12px;
    }
    .main_about .about_info > div{
        height: 60px;
        padding: 0 20px;
    }

    .main_notice .notice_inner{
        padding: 0 24px;
    }
    .main_notice .notice_head .btn_round{
        right: 24px;
    }
    .main_notice .notice_slide{
        margin-left: -24px;
        margin-right: -24px;
        padding-left: 24px;
        padding-right: 24px;
    }
    .main_notice .notice_item a{
        min-height: 260px;
        padding: 28px 26px 24px;
        border-radius: 24px;
    }

}/*E:1024*/


@media screen and (max-width: 768px) {

    .main_visual{
        padding-bottom: 70px;
    }

    .main_about{
        padding-top: 90px;
        padding-bottom: 80px;
    }
    .main_speaker{
        padding-bottom: 80px;
        overflow: hidden;
    }
    /* 모바일 : 양끝 카드(ver_1·5) 숨기고 3장만 크게 → 화면 안에서 잘림 없이 얼굴·이름 가독성 확보 (JS가 3명씩 페이지 구성) */
    .main_speaker .speaker_list{
        margin-top: 16px;
        aspect-ratio: 1 / .7;
    }
    .main_speaker .speaker_card{
        top: 3%;
        width: 46%;
        margin-left: -23%;
        transform-origin: 50% 240%;
    }
    .main_speaker .speaker_card.ver_1,
    .main_speaker .speaker_card.ver_5{
        display: none;
    }
    .main_speaker .speaker_card.ver_2{ --deg: -13deg; }
    .main_speaker .speaker_card.ver_4{ --deg: 13deg; }
    .main_speaker .speaker_frame{
        padding: .4cqw;
        border-radius: 3cqw;
        box-shadow: 0 0 2.4cqw var(--glow), 0 2cqw 4.8cqw rgba(0, 0, 0, .55);
    }
    .main_speaker .speaker_img{
        border-radius: 2.6cqw;
    }
    .main_speaker .speaker_img.is-next{
        top: .4cqw;
        left: .4cqw;
        width: calc(100% - .8cqw);
        height: calc(100% - .8cqw);
    }
    /* 긴 소속명은 카드 폭 안에서 줄바꿈 */
    .main_speaker .speaker_info{
        bottom: 8%;
        width: 88%;
        white-space: normal;
        text-align: center;
        word-break: keep-all;
        line-height: 1.35;
    }
    .main_speaker .speaker_txt{
        font-size: max(10px, 2.6cqw);
    }
    .main_speaker .speaker_name{
        margin-top: 2px;
        font-size: max(13px, 4.2cqw);
    }
    .main_about .about_sub{
        font-size: 14px;
        letter-spacing: .06em;
    }
    .main_about .about_slogan{
        margin-top: 20px;
        padding-top: 56px;
    }
    .main_about .about_slogan::before{
        height: 36px;
    }
    .main_about .about_info{
        flex-direction: column;
        align-items: stretch;
        max-width: 420px;
    }
    .main_about .about_info > div{
        flex-basis: auto;
    }
    .main_about .about_info dd{
        font-size: 17px;
        white-space: normal;
    }

    .main_about .keyword{
        grid-template-columns: 1fr;
        gap: 18px;
        margin-top: 44px;
    }
    .main_about .keyword_item a{
        border-radius: 28px;
    }
    .main_about .keyword_arrow{
        opacity: 1;
        transform: none;
    }
    .main_about .keyword_txt{
        padding: 22px 0 0;
        text-align: center;
    }

    .main_notice .notice_head{
        flex-direction: column;
        gap: 16px;
    }
    .main_notice .notice_head .btn_round{
        position: static;
        transform: none;
    }
    .main_notice .notice_head .btn_round:hover,
    .main_notice .notice_head .btn_round:focus-visible{
        transform: none;
    }
    .main_notice .notice_item a{
        min-height: 240px;
    }
    .main_notice .notice_item_tit{
        font-size: 19px;
    }
    .main_notice .notice_deco.ver_top{
        top: 30px;
    }

}/*E:768*/

@media screen and (max-width: 640px) {

    .main_visual .mv_txt p{
        font-size: 17px;
    }
    .main_about .keyword_cont{
        left: 7%;
        bottom: 10%;
    }

}/*E:640*/

@media screen and (max-width: 480px) {

    .main_about,
    .main_speaker{
        padding-left: 16px;
        padding-right: 16px;
    }
    .main_notice .notice_inner{
        padding: 0 16px;
    }
    .main_notice .notice_slide{
        margin-left: -16px;
        margin-right: -16px;
        padding-left: 16px;
        padding-right: 16px;
    }

}/*E:480*/
