.section{position : relative; overflow: hidden;}

.first-inner, .location-inner, .premium-inner, .contact-inner{position : absolute; left : 50%; top : 50%; width : 192rem; height : 97rem; transform: translate(-50%, -50%);}

.open-rotate-btn{display: flex;flex-direction: column;align-items: center;justify-content: center; width : 15rem; height : 15rem; border-radius: 50%; overflow: hidden; color : #fff; position : fixed; line-height: 1; letter-spacing: -0.04em; font-weight: 700; right : 6.75rem; bottom : 8.1rem; z-index: 100; transform: translateX(16rem); opacity: 0; transition : 2s cubic-bezier(.4,0,.3,1);
    &::after{position : absolute; content : ''; left : 0; top : 0; width : 100%; height : 100%; background: url(../images/common/rotate-text.svg)no-repeat center / contain; animation : rotate-text 14s infinite linear;}
    p:nth-child(1){display: flex; align-items: baseline; gap : 0.4rem; font-size: 1.7rem;}
    b{font-family: Jost; font-size: 2.9rem;}
    span{font-family: Jost; font-size: 2.2rem;}
    p:nth-child(3){font-size: 1.5rem; margin-top: 0.2rem;}
    &.show{transform: translateX(0); opacity: 1;}
    &.hide{opacity: 0; pointer-events: none; transition : .6s cubic-bezier(.4,0,.3,1);}
}

/* INTRO */
#intro{position : fixed; left : 0; top : 0; width : 100%; height : 100%; z-index: 10002; overflow: hidden; background: #f1eee7; transition : opacity 1.4s cubic-bezier(.4,0,.3,1);
    &.end{opacity: 0; pointer-events: none;}
}
.intro-bg{position : absolute; left : 0; top : 0; width : 100%; height : 100%;
    img, video{position : absolute; left : 0; top : 0; width : 100%; height : 100%; object-fit: cover; object-position: center;}
    video{opacity: 0.47;}
}
.intro-inner{position : absolute; left : 50%; top : 50%; width : 192rem; height : 97rem; transform: translate(-50%, -50%);}
.intro-frame{position : absolute; left : 74.4rem; top : 33.3rem; width : 43.3rem; height : 30.4rem; transform: scale(1); opacity: 0; transition : 1.4s cubic-bezier(.4,0,.3,1);
    img{width : 100%; height : 100%;}
}
.intro-video{position : absolute; left : 76.7rem; top : 35.3rem; width : 38.6rem; height : 26.5rem; border-radius: 50%; overflow: hidden; transform: scale(1); opacity: 0; transition : 1.4s .2s cubic-bezier(.4,0,.3,1);
    video{position : absolute; left : 0; top : 0; width : 100%; height : 100%; object-fit: cover; opacity: 0; transform: scale(1); transition : opacity 1.2s cubic-bezier(.4,0,.3,1), transform 3s cubic-bezier(.4,0,.3,1);
        &.on{opacity: 1; transform: scale(1);}
    }
}
.intro-tit{position : absolute; right : 120rem; top : 48.5rem; font-family: NM; font-size: 2.3rem; font-weight: 700; letter-spacing: -0.04em; color : #2c2c2c; white-space: nowrap; transform: translateY(-50%);
    img{display: inline-block; height : 5.1rem; width : auto; margin : 0 0.2rem; vertical-align: -1.1rem;}
    .intro-num-500{height : 5.8rem; margin : 0 0.2rem 0 0; vertical-align: -1.3rem;}
}
.intro-desc{position : absolute; left : 119.6rem; top : 48.5rem; font-size: 1.8rem; font-weight: 500; letter-spacing: -0.04em; color : #2c2c2c; white-space: nowrap; transform: translateY(-50%);}
/* 글자(숫자 이미지 포함)별 blur + opacity */
.intro-tit .char, .intro-tit img, .intro-desc .char{filter: blur(1rem); opacity: 0; transition : .6s cubic-bezier(.4,0,.3,1);}

/* SKIP : 마우스를 따라다니는 버튼 (main.js) */
.intro-skip{display: flex; align-items: center; justify-content: center; gap : 0.5rem; position : absolute; left : 50%; top : 82%; z-index: 3; width : 7.2rem; height : 7.2rem; margin : -3.6rem 0 0 -3.6rem; border-radius: 50%; background: rgba(0,78,80,0.9); color : #fff; font-family: Jost; font-size: 1.3rem; font-weight: 500; letter-spacing: 0.15em; padding-left: 0.3em; transform: scale(0.8); opacity: 0; pointer-events: none; transition : transform .6s cubic-bezier(.4,0,.3,1), opacity .6s cubic-bezier(.4,0,.3,1);
    /* 클릭 유도 : 퍼지는 링 + 움직이는 화살표 */
    &::before{position : absolute; content : ''; left : 0; top : 0; width : 100%; height : 100%; border-radius: inherit; border : 1px solid rgba(0,78,80,0.6); animation : intro-skip-ring 1.8s infinite cubic-bezier(.4,0,.3,1); pointer-events: none;}
    &::after{content : ''; width : 0.6rem; height : 0.6rem; border-top : 1px solid #fff; border-right : 1px solid #fff; transform: rotate(45deg); animation : intro-skip-arrow 1.2s infinite ease-in-out;}
}
@keyframes intro-skip-ring {
    0%{transform: scale(1); opacity: 1;}
    100%{transform: scale(1.6); opacity: 0;}
}
@keyframes intro-skip-arrow {
    0%, 100%{translate : 0 0;}
    50%{translate : 0.4rem 0;}
}

#intro.s1, #intro.s2, #intro.s3{
    .intro-frame, .intro-video{transform: scale(1); opacity: 1;}
    /* PC : 마우스가 움직이면 등장 (main.js 에서 .show) */
    .intro-skip.show{transform: scale(1); opacity: 1; pointer-events: all;}
}
#intro.s1 .intro-con-01,
#intro.s2 .intro-con-02,
#intro.s3 .intro-con-03{
    .intro-tit .char, .intro-tit img{filter: blur(0); opacity: 1; transition : 1s calc(var(--i) * 0.04s + .3s) cubic-bezier(.4,0,.3,1);}
    .intro-desc .char{filter: blur(0); opacity: 1; transition : 1s calc(var(--i) * 0.02s + .5s) cubic-bezier(.4,0,.3,1);}
}

/* 모바일 퀵메뉴 (1200px 이하에서 노출) */
.quick-menu{display: none;}

/* MAIN VISUAL */
.main-visual{background: #b9d3ef;}
.visual-bg{position : absolute; left : 0; top : 0; width : 100%; height : 100%; overflow: hidden;
    img{width : 100%; height : 100%; object-fit: cover; object-position: center 60%; transform: scale(1.15);}
}
/* 처음엔 타이틀만 화면 중앙 → 라인/설명이 왼쪽에 나오면서 시안 위치로 이동 */
.visual-tit-box{display: flex; align-items: center; position : absolute; left : 50%; top : 17rem; transform: translateX(-50%); white-space: nowrap; z-index: 1;}
.visual-desc-box{display: flex; align-items: center; gap : 2.2rem; position : absolute; right : 100%; top : 50%; margin-right: 1.5rem; transform: translateY(-50%);}
.visual-desc{font-family: NM; font-size: 3rem; color : #000;
    .char{opacity: 0;}
}
.visual-line{width : 0rem; height : 1px; background: #707070;}
.visual-tit{font-size: 8.3rem; font-weight: 400; color : #000;
    b{font-weight: 700; color : #054d50;}
    .char{opacity: 0; transform: translateY(3rem);}
}

.main-visual.t1{
    .visual-bg img{transform: scale(1); transition : 5s cubic-bezier(.4,0,.3,1);}
    .visual-tit .char{opacity: 1; transform: translateY(0); transition : 1.4s calc(var(--i) * 0.1s) cubic-bezier(.4,0,.3,1);}
}
.main-visual.t2{
    .visual-tit-box{transform: translateX(calc(-50% + 19.1rem)); transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .visual-line{width : 17.7rem; transition : 1.4s .2s cubic-bezier(.4,0,.3,1);}
    .visual-desc .char{opacity: 1; transition : 1.4s calc(var(--i) * 0.07s + .6s) cubic-bezier(.4,0,.3,1);}
}


/* FIRST */
.first-bg{position : absolute; left : 0; top : 0; width : 100%; height : 100%;
    img{width : 100%; height : 100%; object-fit: cover; object-position: center;}
}
.first-logo{position : absolute; left : 81.5rem; top : 23.5rem; width : 29rem; transform: translateY(-5rem); opacity: 0; transition : 0s 1.4s;}
.first-list{display: flex; position : absolute; left : 31.1rem; top : 43.3rem; width : 131.4rem;
    & > li{flex : 1; display: flex; flex-direction: column; align-items: center; text-align: center; position : relative;}
    & > li + li::before{position : absolute; content : ''; left : 0; top : 0.7rem; width : 1px; height : 30.4rem; background: rgba(0,0,0,0.12); clip-path: inset(0 0 100% 0); transition : 0s 1.2s;}
}
.first-num{display: flex; align-items: flex-end; justify-content: center; height : 17.1rem; transform: scale(2); transform-origin: center bottom; filter: blur(1.5rem); opacity: 0; transition : 0s 1.4s;
    img{height : 16.4rem; width : auto;}
}
.first-tit-eng{margin-top: 0.4rem; font-family: QS, MC, serif; font-size: 4.4rem; font-weight: 700; line-height: 1; color : #b1925e; transform: translateY(5rem); opacity: 0; transition : 0s 1.2s;}
.first-tit{margin-top: 2.4rem; font-family: NM; font-size: 2rem; font-weight: 700; letter-spacing: -0.04em; transform: translateY(5rem); opacity: 0; transition : 0s 1.2s;}
.first-desc{margin-top: 1.6rem; font-size: 1.6rem; line-height: 2.5rem; letter-spacing: -0.04em; transform: translateY(5rem); opacity: 0; transition : 0s 1.2s;}

.main-first.active{
    /* 0. 7·6·7 숫자 먼저 */
    .first-num{transform: scale(1); filter: blur(0); opacity: 1;}
    .first-list > li:nth-child(1) .first-num{transition : 1.4s .4s cubic-bezier(.4,0,.3,1);}
    .first-list > li:nth-child(2) .first-num{transition : 1.4s .55s cubic-bezier(.4,0,.3,1);}
    .first-list > li:nth-child(3) .first-num{transition : 1.4s .7s cubic-bezier(.4,0,.3,1);}

    /* 1. 나머지 요소 */
    .first-logo{transform: translateY(0); opacity: 1; transition : 1.4s 1.5s cubic-bezier(.4,0,.3,1);}
    .first-list > li + li::before{clip-path: inset(0); transition : 2s 1.6s cubic-bezier(.4,0,.3,1);}
    .first-tit-eng{transform: translateY(0); opacity: 1; transition : 1.4s 1.6s cubic-bezier(.4,0,.3,1);}
    .first-tit{transform: translateY(0); opacity: 1; transition : 1.4s 1.75s cubic-bezier(.4,0,.3,1);}
    .first-desc{transform: translateY(0); opacity: 1; transition : 1.4s 1.9s cubic-bezier(.4,0,.3,1);}
}


/* LOCATION */
.main-location{background: #ebebeb;}
.location-bg{position : absolute; left : 0; top : 0; width : 100%; height : 100%; overflow: hidden;
    img{width : 100%; height : 100%; object-fit: cover; object-position: center; transform: scale(1.2); transition : 0s 1.4s;}
}
.location-tit-box{position : absolute; left : 57.8rem; top : 33.8rem; width : 76.4rem; z-index: 1;}
.location-desc{font-size: 1.6rem; font-weight: 500; color : #848484; transform: translateX(-12rem); opacity: 0; transition : 0s 1.4s;}
.location-tit{margin-top: 1rem; font-family: AT, Jost; font-size: 9rem; font-weight: 600; line-height: 1.1; white-space: nowrap;
    span{font-weight: 300;}
    .char{opacity: 0; transition : 0s 1.4s;}
}
.location-sub{margin-top: 0.6rem; text-align: right; font-family: NM; font-size: 1.8rem; font-weight: 700; letter-spacing: -0.04em; transform: translateX(12rem); opacity: 0; transition : 0s 1.4s;}

.location-item{position : absolute;}
.location-img{position : relative; overflow: hidden; background: #fff; box-shadow: 0 1rem 2rem rgba(0,0,0,0.16); opacity: 0; transition : 0s 1.4s;
    img{width : 100%; height : 100%; object-fit: cover; object-position: center; transform: scale(1.2); transition : 0s 1.4s;}
}
.location-item-tit{position : absolute; font-family: AT, Jost; font-size: 2.6rem; font-weight: 400; line-height: 1; white-space: nowrap; opacity: 0; transition : 0s 1.4s;}
.location-item-desc{position : absolute; font-size: 1.6rem; line-height: 2.6rem; letter-spacing: -0.04em; white-space: nowrap; opacity: 0; transition : 0s 1.4s;
    b{font-weight: 700; color : #054d50;}
    small{font-size: inherit;}
}
.location-item .view-more{transform: rotate(-90deg) scale(0.6); opacity: 0; transition : 0s 1.4s;}

/* 각 요소는 화면 속 위치에 맞는 방향에서 등장 */
.location-traffic{left : 13.4rem; top : 17.7rem;
    .location-img{width : 23.8rem; height : 23.8rem; border-radius: 50%; transform: translate(-12rem, -12rem);}
    .view-more{position : absolute; left : 18.1rem; top : -3.2rem;}
    .location-item-tit{left : 0; top : 25.8rem; transform: translateX(-6rem);}
    .location-item-desc{left : 0; top : 29.6rem; transform: translateX(-6rem);}
}
.location-vision{left : 33.5rem; top : 46.9rem;
    .location-img{width : 24.3rem; height : 33.5rem; border-radius: 12.2rem 12.2rem 0 0; transform: translate(-12rem, 12rem);}
    .location-item-tit{left : 26.1rem; top : 10.1rem; writing-mode: vertical-rl; transform: translateY(-6rem);}
    .location-item-desc{left : 0; top : 35.4rem; transform: translateY(6rem);}
}
.location-edu{left : 94.2rem; top : 64.1rem;
    .location-img{width : 36.4rem; height : 21.2rem; border-radius: 10.6rem; transform: translateY(16rem);}
    .location-item-tit{left : 0; top : 23.1rem; transform: translateY(6rem);}
    .location-item-desc{left : 38.8rem; top : 13.8rem; transform: translateX(6rem);}
}
.location-infra{left : 134.9rem; top : 10rem; width : 43.7rem;
    .location-img-01{position : relative; z-index: 1; width : 19.8rem; height : 19.8rem; border-radius: 50%; transform: translate(12rem, -12rem);}
    .location-img-02{position : absolute; left : 16.3rem; top : 9.1rem; width : 27.4rem; height : 32.1rem; box-shadow: none; transform: translateX(16rem);}
    .location-item-tit{left : 13.3rem; top : 34.3rem; writing-mode: vertical-rl; transform: translateY(6rem);}
    .location-item-desc{right : 0; top : 44rem; text-align: right; transform: translateX(6rem);}
}

.location-obj{position : absolute; z-index: 1; opacity: 0; transition : 0s 1.4s;
    &.location-obj-01{left : 12.8rem; top : 78.6rem; width : 19.7rem; transform: translateX(-14rem);}
    &.location-obj-02{left : 68.9rem; top : 80.4rem; width : 21.9rem; transform: translateY(14rem);}
    &.location-obj-03{left : 147.7rem; top : 53.5rem; width : 11.5rem; transform: translateX(14rem);}
}

/* 섹션 바닥 기준 (inner 밖) : 화면 높이와 무관하게 바닥에서 띄움 */
.location-notice{display: flex; align-items: center; gap : 0.7rem; position : absolute; right : calc(50% - 96rem + 13.4rem); bottom : 2.4rem; z-index: 2; font-size: 1.4rem; font-weight: 500; letter-spacing: -0.04em; white-space: nowrap; transform: translateX(6rem); opacity: 0; transition : 0s 1.4s;
    i{display: flex; align-items: center; justify-content: center; width : 2.4rem; height : 2.4rem; border : 1px solid #000; border-radius: 50%; font-family: Jost; font-size: 1.5rem; font-weight: 700; font-style: normal;}
}

.main-location.active{
    .location-bg img{transform: scale(1); transition : 3s cubic-bezier(.4,0,.3,1);}

    /* 0. 타이틀 박스 : 타이틀(글자별) + desc(좌) + sub(우) 동시 시작 */
    .location-tit .char{opacity: 1; transition : 1.4s calc(var(--i) * 0.07s + .4s) cubic-bezier(.4,0,.3,1);}
    .location-desc{transform: translate(0, 0); opacity: 1; transition : 1.4s .4s cubic-bezier(.4,0,.3,1);}
    .location-sub{transform: translate(0, 0); opacity: 1; transition : 1.4s .4s cubic-bezier(.4,0,.3,1);}

    /* 1. 이미지 동시 등장 (타이틀 이후) */
    .location-img{transform: translate(0, 0); opacity: 1; transition : 1.4s 1.6s cubic-bezier(.4,0,.3,1);
        img{transform: scale(1); transition : 2.4s 1.6s cubic-bezier(.4,0,.3,1);}
    }
    .location-obj{transform: translate(0, 0); opacity: 1; transition : 1.4s 1.6s cubic-bezier(.4,0,.3,1);}

    /* 2. 항목 타이틀/설명 : 동시 등장 */
    .location-item-tit{transform: translate(0, 0); opacity: 1; transition : 1.4s 2.4s cubic-bezier(.4,0,.3,1);}
    .location-item-desc{transform: translate(0, 0); opacity: 1; transition : 1.4s 2.4s cubic-bezier(.4,0,.3,1);}
    .location-item .view-more{transform: rotate(0) scale(1); opacity: 1; transition : 1.4s 2.4s cubic-bezier(.4,0,.3,1);}
    .location-notice{transform: translate(0, 0); opacity: 0.77; transition : 1.4s 2.4s cubic-bezier(.4,0,.3,1);}
}


/* PREMIUM */
.main-premium{background: #f1eee7;}
.premium-deco{position : absolute; left : calc(50% - 48.5rem); top : calc(50% - 55.2rem); width : 97.1rem; height : 98.5rem; opacity: 0.49; pointer-events: none;
    img{width : 100%; height : 100%; animation : rotate-text 50s infinite linear;}
}
/* 세로 타이틀 : 화면 높이가 낮으면 이 타이틀만 높이에 맞춰 축소 (글자 길이 ≒ font-size × 9.8) */
.premium-tit{position : absolute; left : calc(50% + 85.5rem); top : 11rem; z-index: 2; font-family: AT, Jost; font-size: min(8.4rem, calc((100vh - 13rem) / 9.8)); font-weight: 600; line-height: 1; writing-mode: vertical-rl; white-space: nowrap; pointer-events: none;
    span{font-weight: 300;}
    /* 상시 : 글자 순번(--i)만큼 늦게 밝아져서 빛이 위→아래로 흐르는 효과 */
    .char{opacity: 0; transform: scale(1.6); filter: blur(1.2rem); transition : 0s 1.2s; animation : premium-tit-light 3s calc(var(--i) * 0.08s) infinite;}
}
@keyframes premium-tit-light {
    0%, 26%, 100%{color : #000;}
    13%{color : #b1925e;}
}
.premium-slide{width : 100%; height : 100%;
    .swiper-wrapper{transition-timing-function: cubic-bezier(.4,0,.3,1);}
}
.premium-slide .swiper-slide{position : relative; overflow: hidden;}

/* 이미지 : --x/--y 방향에서 밀려 들어오며 컬러 블록이 걷히고 이미지 축소 */
.premium-img{position : absolute; overflow: hidden; opacity: 0; transform: translate(var(--x, 0), var(--y, 0)); transition : 0s 1.4s;
    &::after{position : absolute; content : ''; left : 0; top : 0; width : 100%; height : 100%; background: #d9c3ac; transform-origin: right center; transform: scaleX(1); transition : 0s 1.4s;}
    img{width : 100%; height : 100%; object-fit: cover; object-position: center; transform: scale(1.3); filter: blur(2rem); transition : transform 0s 1.4s, filter 0s 1.4s, scale .8s cubic-bezier(.4,0,.3,1);}
    @media(min-width : 1201px){
        &:hover img{scale: 1.06;}
    }
    &.premium-img-01{--x : -18rem;}
    &.premium-img-02{--y : 18rem;}
    &.premium-img-03{--x : 18rem;}
    &.premium-img-04{--y : 18rem;}
    &.premium-img-05{--y : -18rem;}
    &.premium-img-06{--x : 18rem;}
}
.img-label{position : absolute; right : 1.6rem; bottom : 1.2rem; font-size: 1.3rem; font-weight: 500; color : #fff; text-shadow: 0 0 0.6rem rgba(0,0,0,0.3); white-space: nowrap;}
/* PC : 원형/알약형 이미지는 모서리에서 잘리므로 하단 중앙 배치 */
@media (min-width : 1201px){
    .location-traffic .img-label, .location-edu .img-label, .location-img-01 .img-label{left : 50%; right : auto; transform: translateX(-50%);}
}

.premium-con{position : absolute; min-height : 14rem; padding-left: 3.3rem;
    &::before{position : absolute; content : ''; left : 0; top : 0; width : 1px; height : 100%; background: #bababa; transform: scaleY(0); transform-origin: top; transition : 0s 1.4s;}
    .premium-con-tit{margin-top: -0.3rem; font-size: 2.2rem; font-weight: 500; line-height: 3.2rem; letter-spacing: -0.03em; color : #766861; transform: translateY(3rem); opacity: 0; transition : 0s 1.4s;}
    .premium-con-desc{margin-top: 0.5rem; font-size: 1.6rem; font-weight: 500; line-height: 2.6rem; letter-spacing: -0.03em; color : #888; transform: translateY(3rem); opacity: 0; transition : 0s 1.4s;}
    .premium-con-eng{margin-top: 1.2rem; font-family: Jost; font-size: 1.5rem; line-height: 4.4rem; letter-spacing: 0.25em; white-space: nowrap; transform: translateY(3rem); opacity: 0; transition : 0s 1.4s;}
}

/* 01 : 이미지가 화면 왼쪽/아래 끝까지 붙도록 inner 바깥 여백만큼 확장 */
.premium-img-01{left : calc((192rem - 100vw) / 2); top : 25.4rem; width : calc(127.2rem + (100vw - 192rem) / 2); height : calc(71.6rem + (100vh - 97rem) / 2);}
.premium-con-01{left : 136.4rem; top : 75.5rem;}
/* 02 */
.premium-con-02{left : 16.9rem; top : 27.1rem;}
.premium-con-03{left : 16.9rem; top : 48.5rem;}
.premium-img-02{left : 65.5rem; top : 41.1rem; width : 36.5rem; height : 46.6rem;}
.premium-img-03{left : 103rem; top : 41.1rem; width : 69.2rem; height : 46.6rem;}
/* 03 */
.premium-con-04{left : 16.9rem; top : 23.9rem;}
.premium-img-04{left : 16.9rem; top : 52.8rem; width : 82rem; height : 29rem;}
.premium-img-05{left : 107rem; top : 23.9rem; width : 31.9rem; height : 17rem;}
.premium-img-06{left : 139.5rem; top : 23.9rem; width : 31.9rem; height : 17rem;}
.premium-slide-03 .view-more{position : absolute; left : 92.9rem; top : 42.5rem; z-index: 1; transform: scale(0); transition : 0s 1.4s;}
.premium-con-05{left : 107.3rem; top : 67.8rem;}
.premium-con-06{left : 139.5rem; top : 67.8rem;}

.premium-nav{position : absolute; left : calc(50% - 80.5rem); top : calc(50% + 39.6rem); width : 17.4rem; height : 2.8rem; z-index: 2; transition : opacity .6s cubic-bezier(.4,0,.3,1);
    button{position : absolute; top : 0; height : auto; padding : 0 0 1.4rem; font-family: Jost; font-size: 1.4rem; font-weight: 500; line-height: 1.4rem; text-align: left; color : #000; transition : color .4s cubic-bezier(.4,0,.3,1);
        &::after{position : absolute; content : ''; top : 1.2rem; width : 5.5rem; height : 1.7rem; background: no-repeat center / contain; transition : transform .4s cubic-bezier(.4,0,.3,1);}
        &.swiper-button-disabled{color : #a5a5a5; cursor : default;
            &::after{opacity: 0.5;}
        }
    }
    /* PREV : 텍스트 우측정렬(화살표 끝) / NEXT : 텍스트 좌측정렬(화살표 시작) */
    .premium-prev{left : 1.4rem; width : 5.5rem; text-align: right;
        &::after{left : 0; background-image: url(../images/main/arrow-prev.svg);}
        &:not(.swiper-button-disabled):hover::after{transform: translateX(-0.6rem);}
    }
    .premium-nav-bar{position : absolute; left : 9.3rem; top : 1.3rem; width : 1px; height : 1.5rem; background: #90908e;}
    .premium-next{left : 11.9rem; width : 5.5rem;
        &::after{left : 0; background-image: url(../images/main/arrow-next.svg);}
        &:not(.swiper-button-disabled):hover::after{transform: translateX(0.6rem);}
    }
}
/* 첫 슬라이드는 이미지가 좌측 하단을 채우므로 시안대로 내비 숨김 */
.main-premium.t1 .premium-nav{opacity: 0; pointer-events: none;}

.main-premium.active{
    .premium-tit .char{opacity: 1; transform: scale(1); filter: blur(0); transition : 1.4s calc(var(--i) * 0.07s + .4s) cubic-bezier(.4,0,.3,1);}

    .swiper-slide-active{
        .premium-img{opacity: 1; transform: translate(0, 0); transition : opacity 1.4s var(--d) cubic-bezier(.4,0,.3,1), transform 2s var(--d) cubic-bezier(.4,0,.3,1);
            &::after{transform: scaleX(0); transition : transform 1.2s calc(var(--d) + .2s) cubic-bezier(.4,0,.3,1);}
            img{transform: scale(1); filter: blur(0); transition : transform 2.4s var(--d) cubic-bezier(.4,0,.3,1), filter 1.6s calc(var(--d) + .2s) cubic-bezier(.4,0,.3,1), scale .8s cubic-bezier(.4,0,.3,1);}
        }
        /* 세로선이 그려진 뒤 텍스트 등장 */
        .premium-con{
            &::before{transform: scaleY(1); transition : 1.4s var(--d) cubic-bezier(.4,0,.3,1);}
            .premium-con-tit, .premium-con-desc, .premium-con-eng{transform: translateY(0); opacity: 1;}
            .premium-con-tit{transition : 1.4s calc(var(--d) + .2s) cubic-bezier(.4,0,.3,1);}
            .premium-con-desc{transition : 1.4s calc(var(--d) + .3s) cubic-bezier(.4,0,.3,1);}
            .premium-con-eng{transition : 1.4s calc(var(--d) + .4s) cubic-bezier(.4,0,.3,1);}
        }
        .view-more{transform: scale(1); transition : 1.4s 1.2s cubic-bezier(.4,0,.3,1);}

        /* 슬라이드 내 이미지 동시 → 텍스트 동시 */
        .premium-img{--d : .3s;}
        .premium-con{--d : 1.1s;}
    }
}


/* CONTACT */
.main-contact{background: #031b1c; color : #fff;}
.contact-bg{position : absolute; left : 0; top : 0; width : 100%; height : 100%;
    img{width : 100%; height : 100%; object-fit: cover; object-position: center; transform: scale(1.2); transition : 0s 1.4s;}
}
.contact-tit{position : absolute; left : 0; top : 18.8rem; width : 100%; text-align: center; font-family: AT, Jost; font-size: 9rem; font-weight: 600; line-height: 1.1; color : #d9c3ac;
    .char{opacity: 0; filter: blur(1.5rem); transition : 0s 1.4s;}
}
.contact-desc{position : absolute; left : 0; top : 28.4rem; width : 100%; text-align: center; font-family: NM; font-size: 1.8rem; letter-spacing: -0.04em; opacity: 0; transition : 0s 1.4s;
    b{font-weight: 800;}
}
.contact-list{display: flex; gap : 4.2rem; position : absolute; left : 53.4rem; top : 37.3rem;
    & > li{width : 40.4rem; text-align: center; transform: translateY(10rem); opacity: 0; transition : 0s 1.4s;}
}
.contact-map{overflow: hidden;
    img{width : 100%; transition : .8s cubic-bezier(.4,0,.3,1);}
    &:hover img{transform: scale(1.05);}
}
.contact-item-tit{margin-top: 2.6rem; font-size: 2.5rem; font-weight: 500; letter-spacing: -0.04em; color : #d9c3ac;}
.contact-item-addr{margin-top: 1.5rem; padding-bottom: 2.2rem; border-bottom : 1px solid rgba(255,255,255,0.26); font-size: 1.6rem; font-weight: 500; letter-spacing: -0.04em;}
.contact-btn-box{display: flex; justify-content: center; gap : 2.6rem; margin-top: 2rem;
    a{display: flex; align-items: center; gap : 1.1rem; font-size: 1.6rem; font-weight: 500; letter-spacing: -0.04em; transition : .4s cubic-bezier(.4,0,.3,1);
        &:hover{opacity: 0.7;}
    }
    img{width : 3.6rem; height : 3.6rem;}
}

.main-contact.fp-active{
    .contact-bg img{transform: scale(1); transition : 3s cubic-bezier(.4,0,.3,1);}
    .contact-tit .char{opacity: 1; filter: blur(0); transition : 1.4s calc(var(--i) * 0.05s + .4s) cubic-bezier(.4,0,.3,1);}
    .contact-desc{opacity: 1; transition : 1.4s 1s cubic-bezier(.4,0,.3,1);}
    .contact-list > li{transform: translateY(0); opacity: 1;
        &:nth-child(1){transition : 1.4s 1s cubic-bezier(.4,0,.3,1);}
        &:nth-child(2){transition : 1.4s 1.2s cubic-bezier(.4,0,.3,1);}
    }
}


@media(max-width : 1919px){
    html{font-size: 56.25%;}
}
@media(max-width : 1720px){
    html{font-size: 50%;}
}
@media(max-width : 1530px){
    html{font-size: 43.75%;}
}
@media(max-width : 1340px){
    html{font-size: 39%;}
}
@media(max-width : 1200px){
    html{font-size: 62.5%;}

    .first-inner, .location-inner, .premium-inner, .contact-inner{position : relative; left : auto; top : auto; width : auto; height : auto; transform: none;}

    /* INTRO */
    .intro-inner{left : 0; top : 0; width : 100%; height : 100%; transform: none;}
    .intro-frame{left : calc(50% - 150px); top : calc(50% - 105px); width : 300px; height : 211px;}
    .intro-video{left : calc(50% - 134px); top : calc(50% - 92px); width : 268px; height : 184px;}
    .intro-tit{left : 20px; right : 20px; top : calc(50% - 150px); text-align: center; font-size: 18px; white-space: normal;
        img{height : 40px; vertical-align: -9px;}
        .intro-num-500{height : 45px; vertical-align: -10px;}
    }
    .intro-desc{left : 20px; right : 20px; top : calc(50% + 145px); text-align: center; font-size: 14px; line-height: 1.5; white-space: normal;}
    /* 우하단 고정 알약형 */
    #intro.s1 .intro-skip, #intro.s2 .intro-skip, #intro.s3 .intro-skip{transform: scale(1); opacity: 1; pointer-events: all;}
    .intro-skip{left : auto !important; top : auto !important; right : 20px; bottom : 20px; width : auto; height : 38px; margin : 0; padding : 0 16px 0 20px; border-radius: 19px; font-size: 12px; gap : 6px;
        &::after{width : 6px; height : 6px;}
        &::before{animation-name : intro-skip-ring-pill;}
    }
    @keyframes intro-skip-ring-pill {
        0%{transform: scale(1); opacity: 1;}
        100%{transform: scale(1.15, 1.4); opacity: 0;}
    }

    /* MAIN VISUAL */
    /* 모바일 전용 배경 + 2줄 중앙 카피 (괴정모바일.xd) */
    .visual-bg img{object-position: center;}
    .visual-tit-box{flex-direction: column; align-items: center; gap : 10px; top : 133px;}
    .main-visual.t2 .visual-tit-box{transform: translateX(-50%);}
    .visual-desc-box{position : static; margin : 0; transform: none;}
    .visual-line{display: none;}
    .visual-desc{font-size: 26.5px;}
    /* 타이틀이 윗줄(괴정의 새변화 자리)에서 등장 → t2 에서 내려오며 괴정의 새변화 등장 */
    .visual-tit{font-size: 41.5px; transform: translateY(-37px);}
    .main-visual.t2 .visual-tit{transform: translateY(0); transition : 1.4s cubic-bezier(.4,0,.3,1);}

    /* open-rotate-btn 대신 하단 고정 퀵메뉴 */
    .open-rotate-btn{display: none;}
    /* 인트로 이후 등장 (main.js : .show) */
    .quick-menu{display: flex; position : fixed; left : 0; bottom : 0; z-index: 9000; width : 100%; height : 53px; letter-spacing: -0.04em; font-weight: 700; transform: translateY(100%); transition : transform 1s cubic-bezier(.4,0,.3,1);
        &.show{transform: translateY(0);}
        & > *{flex : 1; display: flex; align-items: center; justify-content: center; border-radius: 10px 10px 0 0;}
    }
    .quick-open{background: #fff; color : #054d50; font-size: 13.5px; line-height: 1; white-space: nowrap;
        b{font-family: Jost; font-size: 24px; font-weight: 700;}
        small{font-size: 13.5px; vertical-align: 2px; margin : 0 2px 0 3px;}
    }
    .quick-customer{gap : 8px; background: #054d50; color : #fff; font-size: 13.5px;}
    .quick-customer-icon{width : 19px; height : 18px; background: url(../images/common/icon-customer-white.svg) no-repeat center / contain;}
    .main-section-footer .footer{padding-bottom: 83px;}

    /* FIRST */
    .main-first{padding : 110px 20px 70px;}
    .first-logo{position : relative; left : auto; top : auto; width : 200px; margin : 0 auto; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .first-list{flex-direction: column; position : relative; left : auto; top : auto; width : auto; margin-top: 50px;
        & > li + li{margin-top: 40px; padding-top: 40px;}
        & > li + li::before{left : 50%; top : 0; width : 60px; height : 1px; margin-left: -30px; clip-path: inset(0 100% 0 0); transition : 1.4s cubic-bezier(.4,0,.3,1);}
    }
    .first-num{height : auto; transition : 1.4s cubic-bezier(.4,0,.3,1);
        img{height : 100px;}
    }
    .first-tit-eng{margin-top: 6px; font-size: 32px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .first-tit{margin-top: 16px; font-size: 17px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .first-desc{margin-top: 10px; font-size: 14px; line-height: 22px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    /* 로고/항목별로 스크롤 위치에 따라 등장 (main.js sectionActive) */
    .first-logo.active{transform: translateY(0); opacity: 1;}
    .first-list > li.active{
        &::before{clip-path: inset(0);}
        .first-num{transform: scale(1); filter: blur(0); opacity: 1;}
        .first-tit-eng{transform: translateY(0); opacity: 1; transition : 1.4s .4s cubic-bezier(.4,0,.3,1);}
        .first-tit{transform: translateY(0); opacity: 1; transition : 1.4s .5s cubic-bezier(.4,0,.3,1);}
        .first-desc{transform: translateY(0); opacity: 1; transition : 1.4s .6s cubic-bezier(.4,0,.3,1);}
    }

    /* LOCATION */
    .main-location{padding : 110px 20px 60px;}
    .location-tit-box{position : relative; left : auto; top : auto; width : auto; text-align: center;}
    .location-desc{font-size: 14px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .location-tit{font-size: 36px; white-space: normal;
        .char{transition : 1.4s cubic-bezier(.4,0,.3,1);}
    }
    .location-sub{text-align: center; font-size: 15px; transition : 1.4s cubic-bezier(.4,0,.3,1);}

    /* 항목 : 이미지는 모두 같은 크기의 사각형(4:3), 이미지+텍스트 한 덩어리로 아래에서 위로 등장 */
    .location-item{display: flex; flex-direction: column; align-items: center; position : relative; left : auto !important; top : auto !important; width : 100% !important; max-width : 335px; margin : 50px auto 0; text-align: center; opacity: 0; transform: translateY(40px); transition : 1s cubic-bezier(.4,0,.3,1);
        .location-img{position : relative; left : auto; top : auto; width : 100% !important; height : auto !important; aspect-ratio : 4 / 3; margin : 0 !important; border-radius: 0 !important; box-shadow: none; opacity: 1 !important; transform: none !important;
            img{transform: none !important;}
        }
        .location-img-01{display: none;}
        .location-item-tit{position : relative; left : auto; top : auto; margin-top: 20px; font-size: 22px; writing-mode: horizontal-tb; opacity: 1 !important; transform: none !important;}
        .location-item-desc{position : relative; left : auto; right : auto; top : auto; margin-top: 10px; font-size: 14px; line-height: 22px; white-space: normal; text-align: center; opacity: 1 !important; transform: none !important;}
        .view-more{display: none;}
    }
    .location-obj{display: none;}
    .location-notice{position : relative; right : auto; bottom : auto; justify-content: center; margin-top: 50px; font-size: 11px; white-space: normal; transition : 1.4s cubic-bezier(.4,0,.3,1);
        i{flex-shrink: 0; width : 18px; height : 18px; font-size: 11px;}
    }
    .location-bg img{transform: none;}
    /* 타이틀/항목별로 스크롤 위치에 따라 등장 (main.js sectionActive) */
    .location-tit-box.active{
        .location-desc, .location-sub{transform: translate(0, 0); opacity: 1;}
        .location-tit .char{opacity: 1; transition : 1.4s calc(var(--i) * 0.07s) cubic-bezier(.4,0,.3,1);}
    }
    .location-item.active{opacity: 1; transform: translateY(0);}
    .location-notice.active{transform: translate(0, 0); opacity: 0.77;}

    /* PREMIUM */
    .main-premium{padding : 100px 0 50px;}
    .premium-deco{left : 50%; top : 40px; width : 600px; height : 610px; margin-left: -300px;}
    .premium-tit{position : relative; left : auto; top : auto; padding : 0 20px; font-size: 32px; writing-mode: horizontal-tb; white-space: normal; text-align: center;
        .char{transition : 1.4s cubic-bezier(.4,0,.3,1);}
    }
    .premium-slide{height : auto; margin-top: 30px;
        .swiper-wrapper{display: block;}
        .swiper-slide + .swiper-slide{margin-top: 50px;}
    }
    /* 이미지 ↔ 텍스트 짝 단위로 정렬 (이미지 → 텍스트) */
    .premium-inner{display: flex; flex-direction: column; gap : 16px; padding : 0 20px;}
    .premium-img-02, .premium-img-04{order : 1;}
    .premium-con-02, .premium-con-04{order : 2;}
    .premium-img-03, .premium-img-05{order : 3; margin-top: 30px;}
    .premium-con-03, .premium-con-05{order : 4;}
    .premium-img-06{order : 5; margin-top: 30px;}
    .premium-con-06{order : 6;}
    .premium-img{position : relative; left : auto !important; top : auto !important; width : 100% !important; height : auto !important; aspect-ratio : 16 / 10; --x : 0 !important; --y : 40px !important; transition : opacity .6s cubic-bezier(.4,0,.3,1), transform 1.2s cubic-bezier(.4,0,.3,1);
        &::after{transition : transform 1s .3s cubic-bezier(.4,0,.3,1);}
        img{transition : transform 1.4s .3s cubic-bezier(.4,0,.3,1), filter 1.2s .3s cubic-bezier(.4,0,.3,1);}
    }
    .premium-img-02, .premium-img-03{aspect-ratio : 4 / 3;}
    .premium-con{position : relative; left : auto; top : auto; min-height : 0; padding : 4px 0 4px 20px;
        &::before{transition : 1.4s cubic-bezier(.4,0,.3,1);}
        .premium-con-tit{font-size: 19px; line-height: 27px; transition : 1.4s .2s cubic-bezier(.4,0,.3,1);}
        .premium-con-desc{font-size: 14px; line-height: 22px; transition : 1.4s .3s cubic-bezier(.4,0,.3,1);}
        .premium-con-eng{margin-top: 4px; font-size: 12px; line-height: 30px; transition : 1.4s .4s cubic-bezier(.4,0,.3,1);}
    }
    .img-label{right : 10px; bottom : 8px; font-size: 11px;}
    .premium-slide-03 .view-more{display: none;}
    .premium-nav{display: none;}

    .main-premium.active .premium-tit .char{transform: scale(1);}
    /* 이미지/콘텐츠 블록별로 스크롤 위치에 따라 등장 (main.js sectionActive) */
    .premium-img.active{transform: translate(0, 0); opacity: 1;
        &::after{transform: scaleX(0);}
        img{transform: scale(1); filter: blur(0);}
    }
    .premium-con.active{
        &::before{transform: scaleY(1);}
        .premium-con-tit, .premium-con-desc, .premium-con-eng{transform: translateY(0); opacity: 1;}
    }

    /* CONTACT */
    .main-contact{padding : 110px 20px 140px;}
    .contact-bg img{transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .contact-tit{position : relative; top : auto; font-size: 40px;
        .char{transition : 1.4s cubic-bezier(.4,0,.3,1);}
    }
    .contact-desc{position : relative; top : auto; margin-top: 10px; font-size: 15px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    .contact-list{flex-direction: column; align-items: center; gap : 50px; position : relative; left : auto; top : auto; margin-top: 40px;
        & > li{width : 100%; max-width : 404px; transition : 1.4s cubic-bezier(.4,0,.3,1);}
    }
    .contact-item-tit{margin-top: 20px; font-size: 20px;}
    .contact-item-addr{margin-top: 10px; padding-bottom: 16px; font-size: 14px;}
    .contact-btn-box{gap : 20px; margin-top: 16px;
        a{gap : 8px; font-size: 14px;}
        img{width : 30px; height : 30px;}
    }

    .main-contact.active{
        .contact-bg img{transform: scale(1);}
        .contact-tit .char{opacity: 1; filter: blur(0);}
        .contact-desc{opacity: 1;}
        .contact-list > li{transform: translateY(0); opacity: 1;}
    }
}
