/* =========================================================
   문명전환기 K인문학의 미래적 전회 - main
   Design tokens
========================================================= */
:root{
    --purple-deep:#3d1f3a;      /* agenda active card */
    --purple:#7a2e73;           /* accent (news active, point) */
    --purple-line:#8a3a82;
    --grad-1:#201a4d;           /* partner gradient */
    --grad-2:#3a2668;
    --grad-3:#6a3d84;
    --gray-card:#f0f0f0;
    --gray-card-2:#e9e9e9;
    --dark:#1b1b1b;             /* footer / event card */
    --ink:#222;
    --ink-sub:#8a8a8a;
    --line:#e2e2e2;
    --container:1730px;
    --serif:"Baskervville", "Times New Roman", Georgia, serif;
}

/* base */
#mWrap{position: relative; color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;}
#mWrap *{box-sizing:border-box;}
#mWrap img{max-width:100%;}
/* #mWrap a{color:inherit;text-decoration:none;transition: .25s;font-size: 20px;} */
#mWrap .inner{max-width:var(--container);margin:0 auto;padding:0 30px;}
#mWrap::before{content: '';width: 100%;height: 200vh;background: url(/images/main/mBG.png);position: absolute;top: 0;left: 0;z-index: 2;}

/* 공통 section title (About AGENDA 등 상단 소제목) */
.sec-tit{font-size:34px;font-weight:800;text-align:center;letter-spacing:-.02em;}

/* 공통 VIEW MORE 버튼 */
.more{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.06em;}
.more i{position:relative;transition:.25s;}
/* .more i::before{content:"";position:absolute;top:50%;left:50%;width:11px;height:11px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translate(-60%,-50%) rotate(45deg);}
.more:hover i{background:var(--purple);border-color:var(--purple);color:#fff;} */

/* =========================================================
   #visual
   Aurora(맨 뒤) + Threads(맨 앞) WebGL 배경 위에 타이핑 카피
========================================================= */
#visual{position:relative;width:100%;height:100vh;overflow:hidden;background:#fff;}
#visual .aurora-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;}
#visual .threads-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none;}
#visual .aurora-bg canvas,
#visual .threads-bg canvas{width:100%;height:100%;display:block;}

#visual .vis-tit{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;width:100%;text-align:center;font-size:70px;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:#000;}
#visual .vis-tit b{font-weight:700;}

/* 타이핑 : 글자 단위 페이드 인/아웃 + 언더바 커서 */
#visual .text-type__content{display:inline;}
#visual .text-type__content .ch{display:inline-block;white-space:pre;}
#visual .text-type__cursor{display:inline-block;width:.55em;height:6px;margin-left:.1em;vertical-align:baseline;background:currentColor;transition:none !important;animation:type-blink 1s ease-in-out infinite;}
@keyframes type-blink{0%{opacity:1}50%{opacity:0}100%{opacity:1}}
@keyframes ch-in{from{opacity:0}to{opacity:1}}
@keyframes ch-out{from{opacity:1}to{opacity:0}}

/* 슬로건 3줄 스택 (a→b→c 쌓임) → 블러 디졸브 → 타이틀 (2026-08-14, 업체 요청 1번)
   .vis-slogans = 화면 중앙 고정 / __in = 한 줄씩 쌓일 때 위로 밀어 올리는 레이어 */
#visual .vis-slogans{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;width:100%;padding:0 20px;box-sizing:border-box;text-align:center;pointer-events:none;}
#visual .vis-slogans__in{display:flex;flex-direction:column;align-items:center;gap:.5em;transition:transform .8s cubic-bezier(.22,.75,.2,1);}
#visual .sline{font-size:48px;font-weight:600;line-height:1.3;letter-spacing:-.02em;color:#1b1620;white-space:nowrap;}
#visual .sline .ch{display:inline-block;white-space:pre;opacity:0;transform:translateY(.35em);filter:blur(6px);}
#visual .sline .ch.in{animation:sl-in .32s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes sl-in{to{opacity:1;transform:none;filter:none;}}
/* 블러 디졸브 : 제자리에서 안개처럼 풀리며 소멸 */
#visual .sline .ch.dissolve{animation:sl-dissolve 1.5s ease both;}
@keyframes sl-dissolve{from{opacity:1;filter:none;transform:none;}to{opacity:0;filter:blur(18px);transform:scale(1.07);}}

/* 스크롤 인디케이터 : 첫 문장 타이핑 완료 후 .on 부여 */
#visual .vis-scroll{position:absolute;bottom:200px;left:50%;transform:translateX(-50%);z-index:5;opacity:0;visibility:hidden;transition:opacity 1.5s cubic-bezier(.45,0,.55,1),visibility 1.5s;}
#visual .vis-scroll.on{opacity:1;visibility:visible;}
#visual .vis-scroll .bar{display:block;width:2px;height:100px;background:rgba(204,204,204,.5);position:relative;overflow:hidden;}
#visual .vis-scroll .bar::before{content:"";position:absolute;top:0;left:0;width:2px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,0) 0%,#551b56 50%,rgba(255,255,255,0) 100%);animation:visScrollDown 2s linear infinite;}
@keyframes visScrollDown{0%{transform:translateY(-40px)}100%{transform:translateY(140px)}}

@media (max-width:1024px){
    #visual .vis-tit{font-size:44px;}
    #visual .vis-scroll{bottom:120px;}
    #visual .sline{font-size:32px;}
}
@media (max-width:640px){
    #visual .vis-tit{font-size:30px;padding:0 20px;}
    #visual .text-type__cursor{height:4px;}
    #visual .sline{font-size:20px;white-space:normal;word-break:keep-all;}
}
/* 동작 줄이기 설정 : 슬로건 단계 생략하고 타이틀만 */
@media (prefers-reduced-motion:reduce){
    #visual .vis-slogans{display:none;}
    #visual .sline .ch{opacity:1;transform:none;filter:none;}
}

/* =========================================================
   #agenda
========================================================= */
#agenda{position:relative;padding:150px 0 90px;overflow:hidden;z-index: 3;}
#agenda::before{content: '';width: 100%; height: 100%; background-image: linear-gradient(0deg, #ffffff 30%, #ffffff00); z-index: 1; position: absolute; top: 0; left: 0;}
#agenda .inner{position:relative;z-index:1;}
.agenda-head{position:relative;text-align:center;margin-bottom:56px;}
#agenda .bg-text{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);font-family:var(--serif);font-size:180px;line-height:1;font-style:italic;color:#f5f5f5;white-space:nowrap;pointer-events:none;z-index:0;font-weight:600;}
#agenda .bg-text em{font-weight:600;font-style: normal; font-family: 'Pretendard'; font-weight: 700;letter-spacing:.02em;color:#f5f5f5;}
#agenda .sec-tit{position:relative;z-index:1;font-size:54px;}

/* 헤드 등장 : 밑에 숨어있다가 위로 (마스크 슬라이드업)
   - 바깥(.bg-text / .sec-tit)이 마스크, 안쪽(i / span)이 실제로 올라오는 글자
   - About AGENDA 먼저 → 0.18s 뒤 세부 아젠다 소개 */
#agenda .bg-text{overflow:hidden;padding-top:.18em;}   /* padding-top : 이탤릭 어센더 잘림 방지 */
#agenda .bg-text > i{display:block;font-style:inherit;transform:translateY(110%);}
#agenda .sec-tit{overflow:hidden;}
#agenda .sec-tit > span{display:block;transform:translateY(110%);}
.agenda-head.is-view .bg-text > i{animation:headRise .9s cubic-bezier(.22,1,.36,1) forwards;}
.agenda-head.is-view .sec-tit > span{animation:headRise .9s cubic-bezier(.22,1,.36,1) .2s forwards;}
@keyframes headRise{
    from{transform:translateY(110%);}
    to{transform:translateY(0);}
}

.agenda-list{display:flex;align-items:flex-end;gap:14px;}
.agenda-card{flex:1 1 0;background:var(--gray-card);border-radius:12px 12px 0 0;padding:34px 22px 30px;position:relative;display:flex;flex-direction:column;align-items:center;transition:flex-grow .4s ease, background .35s ease;cursor:pointer;}
/* 카드별 높이 (하단 정렬 → 높이가 상단 지그재그 결정) */
.agenda-card:nth-child(1){min-height:500px;}
.agenda-card:nth-child(2){min-height:600px;}
.agenda-card:nth-child(3){min-height:560px;}
.agenda-card:nth-child(4){min-height:520px;}
.agenda-card:nth-child(5){min-height:670px;}
.agenda-card:nth-child(6){min-height:540px;}

/* AGENDA 넘버 */
.agenda-card .num{width:100%;padding-bottom:30px;border-bottom:1px solid #f5f5f5;text-align:center;font-family:'Paperlogy',"Pretendard",sans-serif;font-size:20px;font-weight:500;letter-spacing:.08em;color:#551b56;transition:color .35s ease,border-color .35s ease;}

/* 카드 제목 : 기본=세로 / 호버=가로 2줄 */
.agenda-card .tit{position:relative;flex:1;width:100%;display:flex;align-items:center;justify-content:center;}
.tit-vert{writing-mode:vertical-rl;text-orientation:mixed;font-size:38px;font-weight:700;letter-spacing:-0.1em;line-height:1.6;color:#333;transition:opacity .3s ease;}
.tit-horz{position:absolute;left:0;top: 30px;text-align:left;pointer-events:none;}
.tit-horz em{display:block;overflow:hidden;font-style:normal;}
.tit-horz i{display:block;font-style:normal;font-size:60px;font-weight:800;letter-spacing:-0.02em;line-height:1.12;color:#fff;transform:translateY(110%);transition:transform .55s cubic-bezier(.22,1,.36,1);}

/* 설명 : 제목 오른쪽 아래 (호버 시 노출) */
.agenda-card .desc{position:absolute;right:0;bottom:30px;text-align:right;}
.agenda-card .desc em{display:block;overflow:hidden;font-style:normal;}
.agenda-card .desc i{display:block;font-style:normal;font-size:18px;font-weight:400;line-height:1.45;color:#fff;transform:translateY(110%);transition:transform .55s cubic-bezier(.22,1,.36,1);}

/* VIEW MORE (호버 시 노출, 전체 폭) */
.agenda-card .more{display:none;width:100%;justify-content:center;align-items:center;padding:18px;font-size:20px;font-weight:700;background:#fff;border:1px solid #fff;border-radius:50px;color:#551b56 !important;}
/* VIEW MORE 아이콘 : 추후 이미지 예정 → 호버 효과 제거 */
.agenda-card .more i{transition:none;}
.agenda-card .more:hover i{background:none;border-color:currentColor;color:inherit;}
.agenda-card .ico{color:#b7b7b7;margin-top:auto;transition:color .3s ease;}

/* hover : 아젠다 2번 스타일 */
.agenda-card:hover{flex-grow:1.5;background:#551b56;}
.agenda-card:hover .num{color:#fff;border-bottom-color:#fff;}
.agenda-card:hover .tit-vert{opacity:0;}
.agenda-card:hover .tit-horz em:nth-child(1) i{transition-delay:.08s;}
.agenda-card:hover .tit-horz em:nth-child(2) i{transition-delay:.22s;}
.agenda-card:hover .desc i{transition-delay:.34s;}
.agenda-card:hover .tit-horz i,
.agenda-card:hover .desc i{transform:translateY(0);}
.agenda-card:hover .ico{display:none;}
.agenda-card:hover .more{display:flex;}

/* 스크롤 등장 : 좌→우 순차 와이프 (main.js 가 .agenda-list 에 .is-view 부여)
   - 호버(flex-grow/background)와 겹치지 않도록 transition 이 아닌 animation 사용
   - 카드별 0.09s 순차 지연 → 왼쪽부터 가로로 쓸리듯 드러남 */
.agenda-list .agenda-card{opacity:0;transform:translateX(-30px);clip-path:inset(0 100% 0 0);}
.agenda-list.is-view .agenda-card{animation:agendaWipe .8s cubic-bezier(.22,1,.36,1) forwards;}
.agenda-list.is-view .agenda-card:nth-child(1){animation-delay:0s;}
.agenda-list.is-view .agenda-card:nth-child(2){animation-delay:.09s;}
.agenda-list.is-view .agenda-card:nth-child(3){animation-delay:.18s;}
.agenda-list.is-view .agenda-card:nth-child(4){animation-delay:.27s;}
.agenda-list.is-view .agenda-card:nth-child(5){animation-delay:.36s;}
.agenda-list.is-view .agenda-card:nth-child(6){animation-delay:.45s;}
@keyframes agendaWipe{
    from{opacity:0;transform:translateX(-30px);clip-path:inset(0 100% 0 0);}
    to{opacity:1;transform:translateX(0);clip-path:inset(0 0 0 0);}
}
/* 모션 최소화 설정 사용자 : 애니메이션 없이 즉시 노출 */
@media (prefers-reduced-motion: reduce){
    .agenda-list .agenda-card{opacity:1;transform:none;clip-path:none;}
    .agenda-list.is-view .agenda-card{animation:none;}
    #agenda .bg-text > i,
    #agenda .sec-tit > span{transform:none;animation:none;}
}

/* =========================================================
   #latest
========================================================= */
/* 커튼 "덮개" : z-index:2 + 불투명 흰 배경 + 아래쪽 라운드.
   뒤에 깔린 .partner-stage 가 margin-top:-100vh 로 이 섹션의 아랫부분과 겹치며,
   그 겹치는 구간을 이 덮개가 완전히 가려야 하므로 min-height:100vh 로 한 화면 높이 확보.
   (겹침 당김은 .partner-stage 가 담당 → 여기선 음수 margin 제거) */
#latest{position:relative;z-index:2;min-height:100vh;padding:70px 0 270px;background:#fff;overflow:hidden;border-radius:0 0 50px 50px;}
/* 배경 텍스트 : 자동으로 천천히 흐르는 마퀴 (JS 가 내용을 .bg-track > .bg-unit 으로 감싸고 한 벌 복제) */
#latest .bg-text{position:absolute;bottom:30px;left:0;width:100%;overflow:hidden;font-family:"Pretendard",-apple-system,"Malgun Gothic",sans-serif;font-size:160px;font-weight:500;color:#f5f5f5;text-transform:uppercase;white-space:nowrap;pointer-events:none;z-index:0;}
#latest .bg-text .bg-track{display:inline-flex;will-change:transform;}
#latest .bg-text .bg-unit{flex:none;padding-right:.35em;}
#latest .bg-text em{font-family:var(--serif);font-style:italic;text-transform:none;color:#dce8ef;}
#latest .inner{position:relative;z-index:1;display:flex;gap:150px;align-items:stretch;}

/* 학술행사 슬라이더 */
.event{flex:0 0 750px;min-width:0;height:530px;background:#000;border-radius:20px;padding:40px;color:#333;position:relative;overflow:visible;display:flex;background: url(/images/main/eventBG.jpg) center center no-repeat; background-size: cover;}
/* 배경 구(球) 장식은 추후 배경이미지로 교체 예정 */
.event-info{flex:1;min-width:0;padding-right:326px;display:flex;flex-direction:column;justify-content:space-between;}
.event-head{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:22px;}
.event-head .label{font-size:16px;font-weight:700;color:#fff;}
.event-nav{display:flex;align-items:center;gap:16px;}
.event-nav button{width:14px;height:14px;border:none;background:transparent;padding:0;position:relative;cursor:pointer;opacity:.5;transition:opacity .2s;}
.event-nav button::before{content:"";position:absolute;top:50%;left:50%;width:9px;height:9px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:translate(-50%,-50%) rotate(45deg);}
.event-nav button.next::before{transform:translate(-50%,-50%) rotate(-135deg);}
.event-nav .bar{width:1px;height:14px;background:rgba(255,255,255,.5);}
.event-nav button:hover{opacity:1;}

.event-viewport{overflow:hidden;position:relative;z-index:2;}
.event-track{display:flex;transition:transform .5s ease;}
.event-slide{flex:0 0 100%;}
.event-slide{padding-top:6px;}
.event-cate{display:none;}
.ev-title h3{font-size:28px;font-weight:800;line-height:1.35;color:#fff;}
/* 제목 링크 : #mWrap a 공통 리셋이 주석 처리되어 있어 색/밑줄을 개별 지정 */
/* inline + box-decoration-break:clone → 여러 줄일 때 줄마다 텍스트 폭만큼 밑줄 (2026-08-14)
   inline-block 이면 박스 전체 기준이라 맨 아랫줄에만 가로 전체로 그어짐
   ※ JS(main.js)가 줄별 밑줄 바를 만들면 h3 에 .has-ulbars 가 붙고, 아래 배경 밑줄은 꺼진다 */
#latest .ev-title h3 a{display:inline;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;text-decoration:none;background-image:linear-gradient(#fff,#fff);background-repeat:no-repeat;background-position:0 96%;background-size:0 2px;transition:background-size .4s cubic-bezier(.22,1,.36,1),opacity .25s;}
/* 줄별 밑줄 : 위에서부터 한 줄씩 순차로 그어진다 (마우스를 떼면 한꺼번에 사라짐) */
#latest .ev-title h3{position:relative;}
#latest .ev-title h3.has-ulbars a{background-image:none;}
#latest .ev-title h3 .ul-bar{position:absolute;height:2px;background:#fff;transform:scaleX(0);transform-origin:left center;transition:transform .25s cubic-bezier(.22,1,.36,1);transition-delay:0s;pointer-events:none;}
#latest .ev-title h3 a:hover ~ .ul-bar,
#latest .ev-title h3 a:focus-visible ~ .ul-bar{transform:scaleX(1);transition-delay:var(--d,0s);}

/* 제목·포스터 호버 연동 : 둘 중 어디에 올려도 두 모션이 함께 (main.js 가 .ev-hot 부여) */
#latest .event.ev-hot .ev-title h3 .ul-bar{transform:scaleX(1);transition-delay:var(--d,0s);}
#latest .event.ev-hot .ev-title h3 a{opacity:.85;}
#latest .event.ev-hot .event-img > a img{transform:scale(1.06);}
#latest .event.ev-hot .event-img > a img.noimg{transform:none;}
#latest .event.ev-hot .event-img > a::after{opacity:.35;}
#latest .event.ev-hot .event-img > a{color:#fff;}
#latest .ev-title h3 a:hover,
#latest .ev-title h3 a:focus-visible{color:#fff;opacity:.85;background-size:100% 2px;}
.ev-meta .date,.ev-meta .place{display:flex;align-items:center;gap:8px;font-size:18px;color:#ddd;margin-top:12px;}
.ev-meta .date i,.ev-meta .place i{font-size:20px;font-style:normal;line-height:1;}
/* 이미지 박스 (우측) : 안에 이미지 추후 삽입 예정 */
.event-poster{position:absolute;top:50%;right:-50px; transform: translateY(-50%); width:366px;height:468px;padding:20px;border-radius:14px;background:#fff;}
.event-frame{position:relative;overflow:hidden;width:326px;height:428px;border-radius:6px;}
.event-imgs{display:flex;height:100%;transition:transform .5s ease;}
.event-img{flex:0 0 326px;width:326px;height:428px;border-radius:6px;background:linear-gradient(160deg,#f2f2f2,#e0e0e0);display:flex;align-items:center;justify-content:center;color:#b8b8b8;font-size:12px;letter-spacing:.15em;font-weight:700;overflow:hidden;}
/* 포스터 링크 : 박스 전체를 클릭 영역으로 */
#latest .event-img{position:relative;}
#latest .event-img > a{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#b8b8b8;text-decoration:none;transition:color .3s;}
#latest .event-img > a > span{position:relative;z-index:2;transition:letter-spacing .35s,color .3s;}
#latest .event-img > a::after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;background:var(--purple-deep);opacity:0;transition:opacity .35s;}
#latest .event-img > a:hover,
#latest .event-img > a:focus-visible{color:#fff;}
#latest .event-img > a:hover > span,
#latest .event-img > a:focus-visible > span{letter-spacing:.3em;}
#latest .event-img > a:hover::after,
#latest .event-img > a:focus-visible::after{opacity:.35;}
/* 추후 실제 포스터 이미지 삽입 시 */
#latest .event-img > a img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1);}
/* 포스터 없을 때 대체 이미지(no_img_m) : 확대 hover 제외하고 고정 (2026-08-14) */
#latest .event-img > a img.noimg,
#latest .event-img > a:hover img.noimg{transform:none;transition:none;}
#latest .event-img > a:hover img{transform:scale(1.06);}

/* 제목 ↔ 포스터 호버 연동 [2026-08-06]
   제목에 올리면 포스터 효과도, 포스터에 올리면 제목 효과도 같이 걸린다.
   .ev-title 과 .event-poster 는 .event 안의 형제라 :has() 로 부모를 거쳐 서로를 지목함.
   ※ :has() 미지원 구형 브라우저에서는 위의 각자 호버만 동작(디자인 깨짐 없음) */

/* 제목에 호버 → 포스터도 반응 */
#latest .event:has(.ev-title h3 a:hover) .event-img > a{color:#fff;}
#latest .event:has(.ev-title h3 a:hover) .event-img > a > span{letter-spacing:.3em;}
#latest .event:has(.ev-title h3 a:hover) .event-img > a::after{opacity:.35;}
#latest .event:has(.ev-title h3 a:hover) .event-img > a img{transform:scale(1.06);}

/* 포스터에 호버 → 제목도 반응 */
#latest .event:has(.event-img > a:hover) .ev-title h3 a{opacity:.85;background-size:100% 2px;}

/* 학술행사 등장 : 왼쪽에서 슬라이드 인 */
.event{opacity:0;transform:translateX(-70px);}
.event.is-view{animation:eventIn .9s cubic-bezier(.22,1,.36,1) forwards;}
@keyframes eventIn{
    from{opacity:0;transform:translateX(-70px);}
    to{opacity:1;transform:translateX(0);}
}

/* 연구단 소식 */
.news{display: flex; flex-direction: column; justify-content: space-between;}
.news-head{display:flex;justify-content:flex-end;align-items:center;gap: 30px;padding-right: 50px;}
.news-head h2{font-size:54px;font-weight:700;}
.news-head .more{background:#000;color:#fff;padding:10px 35px;border-radius:40px;gap:16px;font-size:18px;font-weight:700;letter-spacing:.05em;transition: .25s;}
.news-head .more i{width:auto;height:auto;border:none;border-radius:0;}
/* .news-head .more i::before{content:"→";position:static;transform:none;border:none;width:auto;height:auto;font-size:18px;line-height:1;font-style:normal;} */
.news-head .more:hover{background:var(--purple);}

.news-list{display: flex; flex-direction: column; gap: 20px;}
.news-list li{width: 765px;background: #fff; border:5px solid #cfcfcf;border-right:0; border-radius: 50px 0 0 50px;transition:.2s;}
.news-list .news-item{display:flex;align-items:center;justify-content:space-between;padding:24px 0;width:100%;}
.news-list li:last-child{margin-bottom:0;}
.news-list .cate{flex:0 0 auto;padding:0 30px;font-size:18px;color:#333;font-weight:600;}
.news-list .tit{flex:1;min-width:0;font-size:22px;color:#333;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.news-list .date{flex:0 0 auto;padding-left:24px;font-size:16px;color:#ccc;font-weight:600;}
.news-list li:hover{border-color:var(--purple);}
.news-list li:hover .tit{color:var(--purple);font-weight:600;}
.news-list li:hover .cate{color:var(--purple);}
.news-list li:nth-child(2),.news-list li:nth-child(4){margin-left:-30px;}

/* 소식 리스트 등장 : 맨 아래(4번)부터 위로 한 장씩, 오른쪽에서 들어와 내려앉음 (책 쌓이듯)
   - 살짝 위(-16px) + 살짝 기울어진(1deg) 상태로 들어와 제자리에 안착 */
.news-list li{opacity:0;transform:translate(90px,-16px) rotate(1deg);}
.news.is-view .news-list li{animation:newsStack .75s cubic-bezier(.22,1,.36,1) forwards;}
.news.is-view .news-list li:nth-child(4){animation-delay:0s;}
.news.is-view .news-list li:nth-child(3){animation-delay:.13s;}
.news.is-view .news-list li:nth-child(2){animation-delay:.26s;}
.news.is-view .news-list li:nth-child(1){animation-delay:.39s;}
@keyframes newsStack{
    from{opacity:0;transform:translate(90px,-16px) rotate(1deg);}
    to{opacity:1;transform:translate(0,0) rotate(0);}
}

/* 모션 최소화 설정 사용자 : 애니메이션 없이 즉시 노출 */
@media (prefers-reduced-motion: reduce){
    .event,
    .news-list li{opacity:1;transform:none;}
    .event.is-view,
    .news.is-view .news-list li{animation:none;}
}

/* =========================================================
   #partner
========================================================= */
/* 커튼 스테이지 : position:sticky 가 이 환경의 상위 overflow 설정 때문에 안 먹혀서,
   JS(main.js)로 #partner 를 직접 고정/해제한다 (상위 요소 영향 안 받음).
   - height 300vh = 앞 100vh(드러나는 구간) + 100vh(스테이지 진입 여유) + 100vh(머무는 구간)
     실제 "화면 꽉 채운 채 머무는 시간(dwell)" = height - 200vh
     → 더 오래 머물게 하려면 height 를 키운다 (예: 400vh → dwell 200vh)
   - margin-top:-100vh : 스테이지 앞부분을 #latest 아랫부분과 겹쳐, 그 구간 동안
     #partner 가 #latest(z-index:2) 뒤에 숨어 있다가 #latest 가 걷히며 드러남
   - z-index:1 : #latest(2) · #footer(2) 보다 아래층 */
.partner-stage{position:relative;z-index:1;height:300vh;margin-top:-100vh;}
#partner{position:absolute;top:0;left:0;z-index:1;width:100%;height:100vh;padding:150px 0;background:linear-gradient(20deg,#5d125e 0%,#11133e 100%);overflow:hidden;}
/* JS 가 붙이는 상태 : 통과 중=화면 고정 / 끝=스테이지 하단에 park */
#partner.is-fixed{position:fixed;top:0;}
#partner.is-parked{position:absolute;top:auto;bottom:0;}
#partner::before{content:"";width: 1450px; height: 518px; z-index: 1; position:absolute;background-image: url(/images/main/part_bg.png);top: 120px; right: -100px;opacity: .4;}
#partner .inner{position:relative;z-index:1;width: 100%; height: 100%; display: flex;flex-direction: column; justify-content: space-between;}
.partner-tit{position: relative; z-index: 2; color: #fff; font-size:80px;font-weight:400;line-height:1.28;letter-spacing:-.02em;margin-bottom:70px;}
.partner-tit span{font-weight: 700;}
.partner-list{display:flex;gap:20px;position: relative; z-index: 2;}
.partner-list li{flex:1;background:rgba(255,255,255,.8);border:1px solid rgba(255,255,255,.14);border-radius:12px;backdrop-filter:blur(2px);transition:.25s;}
.partner-list li a{display: block; width: 100%; height: 100%;padding:55px 30px;display:flex;align-items:center;justify-content: center;}
.partner-list li a img{filter: grayscale(1); transition: .25s;}
/* 활성 상태 : 마우스 호버 + JS 가 3초마다 돌리는 .is-active 가 같은 모양 */
.partner-list li:hover,
.partner-list li.is-active{background:#fff;border-color:#fff; transform: translateY(-30px); box-shadow: 0px 30px 30px #0000007a;}
.partner-list li:hover a img,
.partner-list li.is-active a img{filter: grayscale(0);}

