/* ported page css: cscenter_invite_friend */

    @keyframes floating {
        0% { transform: translateY(2px); }
        100% { transform: translateY(-4px); }
    }
    @keyframes cloud_floating {
        0% { transform: translateY(0); }
        100% { transform: translateY(-1.4rem); }
    }
    @keyframes btn_pulse {
        0% { transform: scale(1); }
        100% { transform: scale(1.05); }
    }

    /* 탑바는 배경색이 없어 고정 배경이 비치므로 이 페이지에서만 흰색 지정 */
    .topbar_first,
    .topbar,
    .topbar_second_wrapper {
        background-color: #ffffff;
        /* 가운데 정렬(max-width) 요소 좌우까지 흰색으로 채우기 */
        box-shadow: 0 0 0 100vmax #ffffff;
        clip-path: inset(0 -100vmax);
    }
    footer {
        background-color: #ffffff;
        box-shadow: 0 0 0 100vmax #ffffff;
        /* 좌우 + 푸터 아래 끝까지 흰색으로 채움 */
        clip-path: inset(0 -100vmax -100vmax -100vmax);
    }

    .inv4_container p {
        margin: 0;
    }
    .inv4_container {
        width: 100%;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    /* ===== HERO ===== */
    .inv4_hero {
        position: relative;
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 7rem 2rem 0;
    }
    /* 배경이 스크롤을 따라다니도록 뷰포트에 고정 */
    .inv4_hero .inv4_hero_bg_wrap {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        z-index: -1;
        pointer-events: none;
    }
    .inv4_hero .inv4_hero_bg {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center bottom;
    }
    .inv4_hero > *:not(.inv4_hero_bg_wrap) {
        position: relative;
        z-index: 1;
    }
    .inv4_hero_title_wrap {
        width: 100%;
        display: flex;
        justify-content: center;
    }
    .inv4_hero_titleimg {
        width: 100%;
        max-width: 120rem;
        animation: cloud_floating 2.4s ease-in-out 0s infinite alternate;
    }
    .inv4_hero_sub {
        margin-top: 1.5rem;
        color: black;
        font-size: 2.4rem;
    }
    .inv4_copy_btn_img {
        width: 28.5rem;
        padding: 0 !important;
        background: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        filter: drop-shadow(0 6px 10px rgba(70, 20, 140, 0.3));
    }
    .inv4_copy_btn.animation {
        margin-top: 3.5rem;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        background: linear-gradient(180deg, #ffe14d, #ffc93c);
        color: #5d2ba8;
        font-size: 2.3rem;
        padding: 1.6rem 5rem;
        border-radius: 999px;
        cursor: pointer;
        box-shadow: 0 6px 14px rgba(70, 20, 140, 0.3);
        animation: btn_pulse 0.9s ease-in-out 0s infinite alternate;
    }

    /* ===== SECTION CARD ===== */
    .inv4_section {
        position: relative;
        width: 100%;
        max-width: 126rem;
        background-color: #f6f4fbf3;
        border: 2px solid #7441EE;
        border-radius: 2rem;
        box-shadow: 0 8px 24px rgba(90, 50, 160, 0.08);
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 7rem 3rem 5rem;
        margin-top: 2rem;
    }
    .inv4_section2 {
        margin-top: 11rem;
    }
    .inv4_ribbon_img {
        position: absolute;
        top: -4.7rem;
        left: 50%;
        transform: translateX(-50%);
        width: 31.7rem;
        filter: drop-shadow(0 5px 8px rgba(80, 20, 160, 0.25));
    }
    .inv4_section_title {
        color: #6a1de0;
        font-size: 5.2rem;
        text-align: center;
    }

    /* ===== EVENT 1 ===== */
    .inv4_event1_body {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 2rem;
        margin-top: 4rem;
    }
    .inv4_event1_art {
        width: 35%;
        transform: translateY(5%);
        align-self: center;
        margin-left: 2%;
    }
    .inv4_event1_art img {
        width: 100%;
    }
    .inv4_col {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .inv4_col_num {
        color: #6a1de0;
        font-size: 3.2rem;
    }
    .inv4_col_title {
        font-size: 2.4rem;
        line-height: 2.8rem;
        text-align: center;
        margin-top: 0.8rem;
        white-space: nowrap;
    }
    .inv4_col_sub {
        font-size: 1.8rem;
        color: #9a93ab;
        margin-top: 0.5rem;
    }
    .inv4_stat_wrapper {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 1rem;
        margin-top: 1.2rem;
        margin-bottom: 1.2rem;
    }
    .inv4_stat {
        background: #ffffff;
        border: 1px solid #e8e2f5;
        border-radius: 1.2rem;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 1.8rem 0;
        height: 10rem;
        width: 32rem;
        box-shadow: 0 2px 8px 2px #6C37ED10;
    }
    .inv4_stat_title {
        font-size: 2rem;
        color: #555;
    }
    .inv4_stat_value {
        font-size: 2.6rem;
        color: #6a1de0;
        margin-top: 0.4rem;
    }
    .inv4_stat .inv_inner_finger {
        animation: floating 0.7s ease-in-out 0s infinite alternate;
    }
    .inv4_reward_btn {
        width: 32rem;
        height: 8rem;
        display: flex;
        justify-content: center;
        align-items: center;
        background: linear-gradient(175deg, #8a3ffc 30%, #5711da);
        color: white;
        font-size: 2.3rem;
        border-radius: 1.2rem;
        cursor: pointer;
        animation: floating 0.7s ease-out 0s infinite alternate;
    }
    .inv4_reward_btn.deactivate {
        animation: none;
        background: #8b8b8b;
    }

    /* ===== EVENT 2 ===== */
    .inv4_event2_info {
        font-size: 2.6rem;
        text-align: center;
        margin-top: 2.5rem;
        line-height: 1.6;
    }
    .inv4_event2_info .highlight {
        color: #6a1de0;
        font-size: 5.2rem;
        transform: translateY(-1rem);
    }
    .inv4_event2_art {
        width: 70%;
        max-width: 56rem;
        margin-top: 3rem;
    }
    .inv4_event2_art img {
        width: 100%;
    }

    /* ===== NOTICE ===== */
    .inv4_notice {
        width: 100%;
        max-width: 126rem;
        background-color: #ffffff;
        border: 2px solid #7441EE;
        border-radius: 1.5rem;
        margin-top: 7rem;
        padding: 6rem;
        white-space: pre-wrap;
        font-size: 1.6rem;
        line-height: 2.6rem;
        color: #808080;
    }
    .inv4_notice .notice_title {
        font-size: 1.8rem;
        display: block;
        color: #444;
        margin-bottom: -1rem;
    }

    /* ===== BOTTOM CTA ===== */
    .inv4_bottom_cta {
        width: 100%;
        max-width: 126rem;
        background: linear-gradient(to bottom, #9650fc, #6c37ed);
        border-radius: 2rem;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 2rem;
        padding: 3rem 5rem;
        margin-top: 5rem;
        margin-bottom: 28rem;
        height: 12.5rem;
    }
    .inv4_bottom_cta .inv4_bottom_cta_inner{
        width: 100%;
        max-width: 95rem;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .inv4_bottom_left {
        display: flex;
        align-items: center;
        gap: 2.5rem;
    }
    .inv4_bottom_left img {
        width: 15rem;
        margin-top: -10rem;   /* 배너 위로 튀어나오게 */
        margin-bottom: -6rem; /* 배너 아래로도 튀어나오게 */
        margin-right: 1.5rem;
        filter: drop-shadow(0 6px 10px rgba(60, 20, 130, 0.25));
    }
    .inv4_bottom_text {
        color: #fff;
        font-size: 2.4rem;
        line-height: 4rem;
    }
    .inv4_bottom_text .strong {
        font-size: 3.6rem;
    }
    .inv4_bottom_cta .inv4_copy_btn {
        margin-top: 0;
        white-space: nowrap;
    }

    /* ===== MOBILE ===== */
    @media screen and (min-width: 1024px) {
        .mobile_only { display: none !important; }
    }
    @media screen and (max-width: 1023px) {
        .desktop_only { display: none !important; }
        .inv4_hero {
            padding: 5rem 2rem 0;
        }
        .inv4_hero_titleimg {
            max-width: 34rem;
        }
        .inv4_hero_sub {
            font-size: 1.6rem;
            line-height: 2.2rem;
            margin-top: 1.8rem;
        }
        .inv4_copy_btn {
            font-size: 2rem;
            padding: 1.3rem 3.6rem;
            margin-top: 2.5rem;
        }
        .inv4_copy_btn_img {
            width: 24rem;
        }
        .inv4_section {
            width: calc(100% - 3rem);
            padding: 5.5rem 2rem 4rem;
            margin-top: 6rem;
        }
        .inv4_ribbon {
            top: -2.2rem;
            font-size: 2.2rem;
            padding: 0.9rem 3.6rem;
        }
        .inv4_section_title {
            font-size: 2.8rem;
        }
        .inv4_event1_body {
            flex-direction: column;
            align-items: center;
            gap: 2rem;
            margin-top: 1rem;
        }
        .inv4_event1_art {
            width: 70%;
            max-width: 32rem;
        }
        .inv4_event1_cols {
            width: 100%;
            flex-direction: column;
            gap: 4rem;
        }
        .inv4_col { width: 100%; }
        .inv4_col_num { font-size: 2.6rem; }
        .inv4_col_title { font-size: 2.2rem; }
        .inv4_col_sub { font-size: 1.8rem; }
        .inv4_stat { 
            padding: 1.4rem 0;
            max-width: 100%;
        }
        .inv4_stat_title { font-size: 1.6rem; }
        .inv4_stat_value { font-size: 2.6rem; }
        .inv4_reward_btn {
            height: 7rem;
            font-size: 2.1rem;
            max-width: 100%;
        }
        .inv4_event2_info { font-size: 1.8rem; line-height: 2.6rem; margin-top: 1rem; }
        .inv4_event2_info .highlight { font-size: 3.2rem; line-height: 3.6rem; }
        .inv4_event2_art { width: 100%; margin-bottom: -1rem; }
        .inv4_notice {
            width: calc(100% - 3rem);
            padding: 2.5rem;
            font-size: 1.0rem;
            line-height: 2rem;
            margin-top: 6rem;
        }
        .inv4_notice .notice_title {
            font-size: 1.3rem;
        }
        .inv4_bottom_cta {
            width: calc(100% - 3rem);
            height: 10rem;
            padding: 2rem 1.5rem;
            margin-bottom: 7rem;
        }
        /* 모바일: 왼쪽 코인(위아래 돌출) + 오른쪽 텍스트/버튼 2단 */
        .inv4_bottom_cta .inv4_bottom_cta_inner {
            display: grid;
            grid-template-columns: auto 1fr;
            column-gap: 1.5rem;
            row-gap: .1rem;
            align-items: center;
        }
        .inv4_bottom_left {
            display: contents;
        }
        .inv4_bottom_left img {
            grid-row: 1 / 3;
            width: 11rem;
            margin-bottom: -6.5rem;
            margin-right: 0;
            margin-left: 1rem;
        }
        .inv4_bottom_text {
            font-size: 1.3rem;
            text-align: left;
            line-height: 2rem;
        }
        .inv4_bottom_text .strong {
            font-size: 1.6rem;
        }
        .inv4_bottom_cta .inv4_copy_btn,
        .inv4_bottom_cta .inv4_copy_btn_img {
            grid-column: 2;
            justify-self: start;
            margin-top: 0;
        }
        .inv4_bottom_cta .inv4_copy_btn_img {
            width: 14rem;
        }
        .inv4_ribbon_img {
            top: -3.3rem;
            width: 22.6rem;
        }
    }
    @media screen and (max-width: 359px) {
        .inv4_bottom_text {
            font-size: 1.2rem;
            text-align: left;
            line-height: 2rem;
            margin-bottom: 0.3rem;
        }
        .inv4_bottom_text .strong {
            font-size: 1.4rem;
        }
    }

    /* ===== TOP 버튼 ===== */
    .inv4_top_btn {
        width: 7rem;
        height: 7rem;
        border-radius: 50%;
        background-color: #ffffff;
        box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0.5rem;
        font-size: 1.8rem;
        color: #111;
        cursor: pointer;
        margin: -20rem auto 8rem;
        position: relative;
        z-index: 1;
    }
    @media screen and (max-width: 1023px) {
        .inv4_top_btn {
            width: 6.4rem;
            height: 6.4rem;
            font-size: 1.5rem;
            margin: -3rem auto 5rem;
        }
    }

    /* ===== MODAL ===== */
    .Ranking_Reward_Modal_Container {
        position: fixed;
        z-index: 100;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: none;
        justify-content: center;
        align-items: center;
        background-color: rgba(0, 0, 0, .7);
        opacity: 0;
    }
    .Ranking_Reward_Modal_Container .Ranking_Reward_Modal {
        width: 45rem;
        background-color: white;
        border-radius: 1.5rem;
    }
    .Ranking_Reward_Modal_Container .Ranking_Reward_Modal .Ranking_Reward_Modal_Header {
        width: 100%;
        height: 13rem;
        font-size: 2rem;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    }
    .Ranking_Reward_Modal_Container .Ranking_Reward_Modal .Ranking_Reward_Modal_Content {
        width: 100%;
        padding: 0 6rem;
        display: flex;
        color: #6d6d6d;
        font-size: 1.8rem;
        padding-bottom: 3rem;
    }
