@charset "UTF-8";

html[lang="en"] * {
    word-break: normal;
}

#wrapper {
    position: relative;
    background: #0b094c;
    font-family: "Noto Sans JP", sans-serif;

    .lp-lead {
        position: relative;
        z-index: 1;
        width: 100%;

        .lp-lead-video {
            display: block;
            width: 100%;
            height: auto;
        }

        .lp-lead-video-pc {
            @media screen and (max-width: 767px) {
                display: none;
            }
        }

        .lp-lead-video-sp {
            display: none;

            @media screen and (max-width: 767px) {
                display: block;
            }
        }
    }

    .lp-bg-video {
        position: sticky;
        top: 0;
        z-index: 0;
        display: block;
        width: 100%;
        height: 100vh;
        height: 100lvh;
        margin-bottom: -100vh;
        margin-bottom: -100lvh;
        object-fit: cover;
        pointer-events: none;
    }

    #container {
        position: relative;
        width: 100%;
        height: auto;
        background: none;
        color: #fff;
    }

    #footer {
        position: relative;
        z-index: 1;
        border-top: 0.1rem solid rgba(255, 255, 255, 0.2);
        background: linear-gradient(
            180deg,
            rgba(0, 85, 157, 0.6) 0%,
            #00559d 100%
        );
        -webkit-backdrop-filter: blur(0.6rem);
        backdrop-filter: blur(0.6rem);
        color: #ffffff;

        .footer-inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 3.2rem;
            padding: 6.4rem 2.4rem 4rem;

            @media screen and (max-width: 767px) {
                gap: 2.4rem;
                padding: 4.8rem 2rem 3.2rem;
            }

            .footer-sns {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
                gap: 1.6rem;

                @media screen and (max-width: 767px) {
                    gap: 1.2rem;
                }

                & a {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    width: 4.8rem;
                    height: 4.8rem;
                    border-radius: 50%;
                    background: #ffffff;
                    box-shadow: 0 0.8rem 1.6rem rgba(0, 0, 0, 0.25);
                    transition:
                        transform 0.45s ease,
                        box-shadow 0.45s ease;

                    @media screen and (max-width: 767px) {
                        width: 3.8rem;
                        height: 3.8rem;
                    }

                    @media (hover: hover) and (pointer: fine) {
                        &:hover {
                            transform: translateY(-0.4rem);
                            box-shadow: 0 1.2rem 2.4rem rgba(0, 0, 0, 0.35);
                        }
                    }
                }

                & img {
                    display: block;
                    width: 2.4rem;
                    height: 2.4rem;
                    object-fit: contain;

                    @media screen and (max-width: 767px) {
                        width: 2rem;
                        height: 2rem;
                    }
                }
            }

            .footer-links {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;

                & li {
                    display: flex;
                    align-items: center;
                }

                & li + li::before {
                    content: "";
                    width: 0.1rem;
                    height: 1.4rem;
                    margin: 0 2rem;
                    background: rgba(255, 255, 255, 0.5);
                }

                & a {
                    color: #ffffff;
                    font-size: 1.6rem;
                    letter-spacing: 0.1em;
                    text-decoration: none;
                    transition: opacity 0.45s ease;

                    @media screen and (max-width: 767px) {
                        font-size: 1.3rem;
                    }

                    @media (hover: hover) and (pointer: fine) {
                        &:hover {
                            opacity: 0.6;
                        }
                    }
                }
            }

            .footer-copyright {
                font-family: "Noto Sans JP", sans-serif;
                font-size: 1.3rem;
                letter-spacing: 0.05em;
                color: rgba(255, 255, 255, 0.6);

                @media screen and (max-width: 767px) {
                    font-size: 1.1rem;
                }
            }
        }
    }
}

.lp-hero {
    width: 100%;
    height: 108rem;

    @media screen and (max-width: 767px) {
        height: 62rem;
    }

    .lp-hero-inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-top: 22.2rem;

        @media screen and (max-width: 767px) {
            padding-top: 7rem;
        }

        .lp-hero-ellipse {
            width: 24.5rem;
            height: 24.5rem;
            margin-bottom: 8.2rem;
            border: 0.2rem solid #ffffff;
            border-radius: 50%;
            background: #231f5c;
            box-shadow:
                0 0 2rem rgba(255, 255, 255, 0.6),
                0 0 6rem rgba(190, 180, 255, 0.45);

            @media screen and (max-width: 767px) {
                width: 12rem;
                height: 12rem;
                margin-bottom: 12rem;
                border-width: 0.15rem;
                box-shadow:
                    0 0 1.2rem rgba(255, 255, 255, 0.6),
                    0 0 3.6rem rgba(190, 180, 255, 0.45);
            }
        }

        .lp-hero-title {
            font-style: normal;
            font-weight: 700;
            font-size: 5.1rem;
            line-height: 7.8rem;
            text-align: center;
            letter-spacing: 0.1em;
            color: #ffffff;

            @media screen and (max-width: 767px) {
                font-size: 2.6rem;
                line-height: 4rem;
            }
        }
    }
}

.lp-content {
    /* Space above the columns, and where the side columns stop when sticky */
    --lp-sticky-top: 7rem;
    display: grid;
    grid-template-columns: 1fr 58.5rem 1fr;
    align-items: start;
    padding: var(--lp-sticky-top) 0 12rem;
    color: #ffffff;

    @media screen and (max-width: 767px) {
        display: block;
        padding: 4rem 0 12rem;
    }

    .lp-side {
        position: sticky;
        top: var(--lp-sticky-top);
        width: 52rem;

        @media screen and (max-width: 767px) {
            display: none;
        }
    }

    .lp-side-left {
        justify-self: start;

        .lp-brand-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 5.6rem 4rem 5.2rem;
            background: rgba(228, 228, 236, 0.92);
            border: 0.2rem solid rgba(255, 255, 255, 0.8);
            border-radius: 0 0.8rem 0.8rem 0;

            .lp-brand-osg {
                width: 100%;
                max-width: 37rem;
                margin: 0 auto 2.4rem;
            }

            .lp-brand-debut {
                font-style: normal;
                font-weight: 400;
                font-size: 3rem;
                line-height: 130%;
                text-align: center;
                letter-spacing: 0.05em;
                color: #00559d;
            }

            .lp-brand-zero {
                width: 43.2rem;
            }
        }
    }

    .lp-center {
        /* Side padding for everything in the column except the full-width cards */
        --lp-gutter: 2.4rem;
        display: flex;
        flex-direction: column;
        gap: 5.6rem;
        width: 58.5rem;

        @media screen and (max-width: 767px) {
            --lp-gutter: 2rem;
            gap: 4rem;
            width: 100%;
        }

        .lp-intro {
            margin: 0 var(--lp-gutter);
            padding-bottom: 5.6rem;
            border-bottom: 0.2rem dashed rgba(255, 255, 255, 0.6);
            text-align: center;

            @media screen and (max-width: 767px) {
                padding-bottom: 4rem;
            }

            .lp-intro-title {
                margin-bottom: 5.6rem;
                font-style: normal;
                font-weight: 700;
                font-size: 4rem;
                line-height: 150%;
                text-align: center;
                letter-spacing: 0.1em;
                color: #ffffff;
                @media screen and (max-width: 767px) {
                    margin-bottom: 3.2rem;
                    font-size: 2.4rem;
                }
            }

            .lp-intro-en {
                margin-bottom: 3.2rem;
                font-style: normal;
                font-weight: 400;
                font-size: 1.8rem;
                line-height: 150%;
                text-align: center;
                letter-spacing: 0.1em;
                color: #ffffff;
                word-break: normal;
                overflow-wrap: normal;
                @media screen and (max-width: 767px) {
                    margin-bottom: 2rem;
                    font-size: 1.4rem;
                }
            }

            .lp-intro-ja {
                font-style: normal;
                font-weight: 400;
                font-size: 1.8rem;
                line-height: 150%;
                text-align: center;
                letter-spacing: 0.1em;
                color: #ffffff;
                @media screen and (max-width: 767px) {
                    font-size: 1.4rem;
                }
            }
        }

        .lp-product {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 1.6rem;
            margin: 0 var(--lp-gutter);
            padding: 3.6rem var(--lp-gutter);
            background: none;
            text-align: center;

            &::before {
                content: "";
                position: absolute;
                inset: 0;
                -webkit-backdrop-filter: blur(0.45rem);
                backdrop-filter: blur(0.45rem);
                pointer-events: none;
            }

            &::after {
                content: "";
                position: absolute;
                inset: 0;
                background: linear-gradient(
                    276.41deg,
                    #0f0a4a 0.02%,
                    #00559d 100.02%
                );
                mix-blend-mode: soft-ligh;
                pointer-events: none;
            }

            .lp-product-title,
            .lp-product-media,
            .lp-product-name,
            .lp-catalog-btn {
                position: relative;
                z-index: 1;
            }
            @media screen and (max-width: 767px) {
                padding: 2.8rem var(--lp-gutter);
            }

            .lp-product-title {
                font-style: normal;
                font-weight: 700;
                font-size: 2.8rem;
                line-height: 140%;
                text-align: center;
                color: #ffffff;
                padding-bottom: 0.8rem;
                @media screen and (max-width: 767px) {
                    font-size: 2rem;
                }
            }

            .lp-product-media {
                position: relative;
                width: 100%;
                aspect-ratio: 489 / 275;
                background: #7a7a7a;

                & img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
                & iframe {
                    display: block;
                    width: 100%;
                    height: 100%;
                }

                .lp-play {
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    width: 7.2rem;
                    height: 7.2rem;
                    border-radius: 50%;
                    background: rgba(0, 0, 0, 0.75);
                    transform: translate(-50%, -50%);

                    @media screen and (max-width: 767px) {
                        width: 4.8rem;
                        height: 4.8rem;
                    }

                    &::before {
                        content: "";
                        position: absolute;
                        top: 50%;
                        left: 54%;
                        border-style: solid;
                        border-width: 1.2rem 0 1.2rem 2rem;
                        border-color: transparent transparent transparent
                            #ffffff;
                        transform: translate(-50%, -50%);

                        @media screen and (max-width: 767px) {
                            border-width: 0.8rem 0 0.8rem 1.3rem;
                        }
                    }
                }
            }

            .lp-product-name {
                font-style: normal;
                font-weight: 700;
                font-size: 2.40112rem;
                line-height: 3.5rem;
                text-align: center;
                color: #ffffff;
                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }
        }

        .lp-detail {
            display: flex;
            flex-direction: column;
            margin: 12.8rem var(--lp-gutter) 0;
            text-align: center;

            @media screen and (max-width: 767px) {
                margin-top: 6.4rem;
            }

            .lp-detail-head {
                display: flex;
                flex-direction: column;
                align-items: center;

                .lp-detail-sphere-box {
                    position: relative;
                    display: flex;
                    align-items: flex-end;
                    justify-content: center;
                    align-self: stretch;
                    aspect-ratio: 537 / 274;
                    margin-bottom: 2.4rem;
                    padding-bottom: 3.2rem;

                    @media screen and (max-width: 767px) {
                        margin-bottom: 2rem;
                        padding-bottom: 2rem;
                    }

                    .lp-detail-sphere {
                        position: absolute;
                        inset: 0;
                        border-radius: 41.6rem 47.2rem 0 0;
                        background: radial-gradient(
                            93.26% 92.94% at 28.58% 7.06%,
                            #bdbdbd 0%,
                            #000000 84.06%
                        );
                        box-shadow: 0.3rem 0.3rem 0.6rem rgba(0, 0, 0, 0.15);
                        mix-blend-mode: color-dodge;
                    }

                    .lp-detail-catch {
                        position: relative;
                        font-size: 3.4rem;
                        font-weight: 700;
                        line-height: 1.6;
                        letter-spacing: 0.1em;

                        @media screen and (max-width: 767px) {
                            font-size: 2rem;
                        }
                    }
                }

                .lp-detail-name {
                    display: flex;
                    flex-direction: column;
                    margin-bottom: 2.4rem;
                    text-align: center;
                    color: #ffffff;
                    font-size: 3.6rem;
                    font-weight: 700;
                    line-height: 1.3;
                    letter-spacing: 0.05em;

                    @media screen and (max-width: 767px) {
                        margin-bottom: 1.6rem;
                        font-size: 2.2rem;
                    }

                    .lp-detail-type {
                        font-size: 2rem;
                        letter-spacing: 0.05em;

                        @media screen and (max-width: 767px) {
                            font-size: 1.4rem;
                        }
                    }
                }
            }

            .lp-detail-visual {
                position: relative;
                height: 0;
                margin-bottom: 6.4rem;
                padding: calc(268 / 537 * 100%) 0 0;
                background: #ffffff;
                border-radius: 0.4rem;

                @media screen and (max-width: 767px) {
                    margin-bottom: 4rem;
                }

                & img {
                    position: absolute;
                    top: 2.4rem;
                    left: 2.4rem;
                    width: calc(100% - 4.8rem);
                    height: calc(100% - 4.8rem);
                    max-width: none;
                    object-fit: contain;
                    object-position: center;

                    @media screen and (max-width: 767px) {
                        top: 2rem;
                        left: 2rem;
                        width: calc(100% - 4rem);
                        height: calc(100% - 4rem);
                    }
                }
            }

            .lp-detail-features {
                margin-bottom: 8rem;
                padding: 3.6rem 2.4rem 4.8rem;
                background: rgba(0, 85, 157, 0.35);

                @media screen and (max-width: 767px) {
                    margin-bottom: 5.6rem;
                    padding: 3.2rem 2rem 4rem;
                }

                .lp-line-title {
                    margin-bottom: 3.2rem;

                    @media screen and (max-width: 767px) {
                        margin-bottom: 2.4rem;
                    }
                }

                .lp-detail-feature {
                    + .lp-detail-feature {
                        margin-top: 4rem;

                        @media screen and (max-width: 767px) {
                            margin-top: 3.6rem;
                        }
                    }

                    .lp-detail-feature-title {
                        margin-bottom: 2rem;
                        font-size: 2.8rem;
                        font-weight: 700;
                        line-height: 1.5;
                        letter-spacing: 0.05em;

                        @media screen and (max-width: 767px) {
                            margin-bottom: 1.6rem;
                            font-size: 1.6rem;
                        }
                    }

                    .lp-detail-feature-text {
                        font-size: 1.8rem;
                        line-height: 1.5;
                        letter-spacing: 0.05em;
                        font-style: normal;
                        font-weight: 400;
                        text-align: center;
                        letter-spacing: 0.05em;
                        color: #ffffff;
                        @media screen and (max-width: 767px) {
                            font-size: 1.2rem;
                        }
                    }

                    .lp-detail-feature-img {
                        width: 100%;
                        margin-top: 2.4rem;

                        @media screen and (max-width: 767px) {
                            margin-top: 2rem;
                        }
                    }

                    .lp-detail-feature-media {
                        aspect-ratio: 489 / 275;
                        margin-top: 2.4rem;
                        background: #7a7a7a;
                        border-radius: 0.4rem;
                        overflow: hidden;

                        @media screen and (max-width: 767px) {
                            margin-top: 2rem;
                        }

                        & img {
                            width: 100%;
                            height: 100%;
                            object-fit: cover;
                        }
                    }
                }
            }

            .lp-detail-pr {
                margin-bottom: 4rem;

                @media screen and (max-width: 767px) {
                    margin-bottom: 2.4rem;
                }

                .lp-line-title {
                    margin-bottom: 3.2rem;

                    @media screen and (max-width: 767px) {
                        margin-bottom: 2rem;
                    }
                }

                .lp-detail-video {
                    aspect-ratio: 16 / 9;
                    background: #7a7a7a;

                    & img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                    }
                    
                    & iframe {
                        display: block;
                        width: 100%;
                        height: 100%;
                    }
                }
            }
        }

        .lp-event-card {
            margin-top: 6.8rem;

            @media screen and (max-width: 767px) {
                margin-top: 0;
            }
        }

        .lp-detail + .lp-event-card + .lp-detail {
            margin-top: 6.8rem;

            @media screen and (max-width: 767px) {
                margin-top: 2.4rem;
            }
        }

        .lp-form {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            min-height: 58rem;
            margin: 6.8rem var(--lp-gutter) 0;
            padding: 4rem var(--lp-gutter);
            background: #ffffff;

            @media screen and (max-width: 767px) {
                min-height: 40rem;
                margin-top: 0;
            }

            & form,
            .mktoForm {
                width: 100% !important;
                min-width: 0;
                padding: 0;
                color: #1c1c1c;
                font-size: 1.8rem;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm .mktoFormRow {
                display: flex !important;
                flex-direction: row;
                flex-wrap: wrap;
                align-items: flex-start;
                gap: 1.8rem 4%;
                width: 100% !important;
                min-width: 0;
                float: none;
                margin-bottom: 1.8rem;
            }

            .mktoForm .mktoFormCol {
                display: block !important;
                flex: 1 1 45%;
                width: auto !important;
                max-width: 100%;
                min-width: 0;
                float: none !important;
                clear: none;
            }

            .mktoForm .mktoFieldWrap {
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                width: 100% !important;
                min-width: 0;
                float: none !important;
            }

            .mktoForm .mktoOffset,
            .mktoForm .mktoGutter,
            .mktoForm .mktoClear {
                display: none;
            }

            .mktoForm .mktoLabel {
                display: flex;
                align-items: baseline;
                gap: 0.4rem;
                width: 100% !important;
                margin-bottom: 0.6rem;
                float: none;
                font-size: 1.8rem;
                font-weight: 700;
                line-height: 1.4;
                color: #221b60;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm .mktoAsterix {
                position: static !important;
                float: none !important;
                order: 1;
                color: #c4002f;
            }

            .mktoForm input.mktoField:not([type="checkbox"]):not([type="radio"]),
            .mktoForm select.mktoField {
                width: 100% !important;
                height: 4.4rem;
                padding: 0 1.2rem;
                border: 0.1rem solid #c5c6d4;
                border-radius: 0.4rem;
                background: #ffffff;
                box-sizing: border-box;
                color: #1c1c1c;
                font-family: inherit;
                font-size: 1.8rem;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm textarea.mktoField {
                width: 100% !important;
                min-height: 10rem;
                padding: 1.2rem;
                border: 0.1rem solid #c5c6d4;
                border-radius: 0.4rem;
                background: #ffffff;
                box-sizing: border-box;
                color: #1c1c1c;
                font-family: inherit;
                font-size: 1.8rem;
                line-height: 1.6;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm input[type="checkbox"],
            .mktoForm input[type="radio"] {
                display: inline-block;
                width: 1.6rem !important;
                height: 1.6rem !important;
                margin: 0 0.6rem 0 0;
                padding: 0 !important;
                border: 0 !important;
                border-radius: 0;
                background: transparent;
                float: none !important;
                appearance: auto;
                vertical-align: middle;
            }

            .mktoForm .mktoCheckboxList,
            .mktoForm .mktoRadioList {
                width: 100% !important;
                padding: 0.4rem 0 0;
            }

            .mktoForm .mktoCheckboxList br,
            .mktoForm .mktoRadioList br {
                display: none;
            }

            .mktoForm .mktoCheckboxList label,
            .mktoForm .mktoRadioList label {
                display: inline !important;
                width: auto !important;
                margin: 0 0 0.8rem 0.6rem;
                float: none !important;
                font-size: 1.8rem;
                font-weight: 400;
                line-height: 1.6;
                color: #1c1c1c;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm .mktoCheckboxList label::after,
            .mktoForm .mktoRadioList label::after {
                content: "";
                display: block;
            }

            .mktoForm .mktoFieldWrap:has(input[type="checkbox"]):not(:has(input[type="checkbox"]:nth-of-type(2))) {
                flex-direction: row;
                align-items: center;
                gap: 0.8rem;
            }

            .mktoForm .mktoFieldWrap:has(input[type="checkbox"]):not(:has(input[type="checkbox"]:nth-of-type(2))) .mktoLabel {
                width: auto !important;
                margin-bottom: 0;
                order: 1;
            }

            .mktoForm .mktoFieldWrap:has(input[type="checkbox"]):not(:has(input[type="checkbox"]:nth-of-type(2))) .mktoCheckboxList {
                width: auto !important;
                padding: 0;
            }

            .mktoForm .mktoFieldWrap:has(input[type="checkbox"]):not(:has(input[type="checkbox"]:nth-of-type(2))) .mktoCheckboxList label::after {
                display: none;
            }

            .mktoForm .mktoButtonRow {
                display: flex;
                justify-content: center;
                width: 100% !important;
            }

            .mktoForm .mktoButtonWrap {
                margin-left: 0 !important;
                margin-right: 0 !important;
            }

            .mktoForm .mktoButton {
                min-width: 18rem;
                min-height: 5.2rem;
                margin-top: 0.8rem;
                padding: 0 2.4rem;
                border: 0;
                border-radius: 999rem;
                background: linear-gradient(90deg, #221b60 0%, #254581 100%);
                color: #ffffff;
                font-family: inherit;
                font-size: 1.8rem;
                font-weight: 700;
                cursor: pointer;

                @media screen and (max-width: 767px) {
                    font-size: 1.6rem;
                }
            }

            .mktoForm .mktoHtmlText {
                width: 100% !important;
                margin: 0.4rem 0 0.8rem;
                font-size: 1.6rem;
                line-height: 1.8;
                color: #333333;

                @media screen and (max-width: 767px) {
                    font-size: 1.4rem;
                }
            }

            .mktoForm .mktoHtmlText,
            .mktoForm .mktoHtmlText * {
                max-width: 100% !important;
                box-sizing: border-box;
                white-space: normal !important;
                word-break: normal;
                overflow-wrap: break-word;
            }

            .mktoForm .mktoHtmlText * {
                font-size: inherit;
            }

            .lp-form-placeholder {
                font-size: 3.2rem;
                font-weight: 700;
                line-height: 1.5;
                text-align: center;
                color: #e600e6;

                @media screen and (max-width: 767px) {
                    font-size: 2.2rem;
                }
            }
        }
    }

    .lp-side-right {
        justify-self: end;
        display: flex;
        flex-direction: column;
        gap: 4rem;
        margin-right: 4.8rem;

        @media screen and (max-width: 767px) {
            display: none;
        }

        .lp-feature-card {
            position: relative;
            padding: 4rem;
            background: linear-gradient(
                127.47deg,
                rgba(255, 255, 255, 0.12) 10.66%,
                rgba(255, 255, 255, 0.02) 103.36%
            );
            box-shadow: 0 1.8rem 2.86rem rgba(0, 0, 0, 0.25);
            -webkit-backdrop-filter: blur(0.2rem);
            backdrop-filter: blur(0.2rem);

            .lp-feature-title {
                font-style: normal;
                font-weight: 700;
                font-size: 2.4rem;
                line-height: 150%;
                letter-spacing: 0.1em;
                color: #ffffff;
                text-shadow: 0.2rem 0.4rem 0.4rem rgba(0, 0, 0, 0.15);
            }

            .lp-feature-img {
                width: 46rem;
                margin: -2rem 0 -4rem auto;
            }

            .lp-feature-name {
                font-style: normal;
                font-weight: 700;
                font-size: 2.7rem;
                line-height: 1;
                text-align: right;
                color: #ffffff;
                text-shadow: 2px 4px 4px rgba(0, 0, 0, 0.15);
                letter-spacing: 0;
                & span {
                    font-size: 2.1rem;
                    line-height: 1;
                }
            }
        }

        .lp-event-card {
            padding-inline: 3.2rem;

            .lp-event-title {
                font-size: 3.38rem;
                margin-bottom: 3.2rem;
                letter-spacing: 0.05em;
                white-space: nowrap;
            }

            .lp-event-text {
                font-size: 2rem;
                margin-bottom: 3.2rem;
            }
        }
    }

    .lp-line-title {
        display: flex;
        align-items: center;
        gap: 1.6rem;
        font-size: 3.2rem;
        font-weight: 700;
        line-height: 1.5;
        letter-spacing: 0.1em;

        @media screen and (max-width: 767px) {
            gap: 1.2rem;
            font-size: 2rem;
        }

        &::before,
        &::after {
            content: "";
            flex: 1;
            height: 0.1rem;
            background: rgba(255, 255, 255, 0.5);
        }
    }

    .lp-catalog-btn {
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 1.2rem;
        width: 100%;
        height: 7.203rem;
        border-radius: 4.57713rem;
        background: linear-gradient(90deg, #003867 0%, #00559d 100%);
        box-shadow: inset 0.30014rem 0.30014rem 0.600279rem
            rgba(255, 255, 255, 0.35);
        font-size: 2.1rem;
        font-weight: 700;
        color: #ffffff;
        text-decoration: none;
        letter-spacing: 0.05em;
        transition:
            transform 0.45s ease,
            box-shadow 0.45s ease;

        &::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            z-index: 0;
            width: 45%;
            height: 100%;
            background: linear-gradient(
                100deg,
                transparent 0%,
                rgba(255, 255, 255, 0.55) 50%,
                transparent 100%
            );
            transform: translateX(-180%) skewX(-18deg);
            pointer-events: none;
        }

        .lp-btn-icon,
        .lp-btn-text {
            position: relative;
            z-index: 1;
        }

        @media screen and (max-width: 767px) {
            height: 5.2rem;
            gap: 0.8rem;
            font-size: 1.4rem;
        }

        @media (hover: hover) and (pointer: fine) {
            &:hover {
                transform: translateY(-0.2rem);
                box-shadow:
                    inset 0.30014rem 0.30014rem 0.600279rem
                        rgba(255, 255, 255, 0.55),
                    0 0.8rem 2.4rem rgba(90, 120, 255, 0.4);

                &::before {
                    transform: translateX(320%) skewX(-18deg);
                    transition: transform 0.75s ease;
                }

                .lp-btn-icon {
                    background: rgba(255, 255, 255, 0.22);
                    box-shadow: 0 0 1.2rem rgba(255, 255, 255, 0.75);
                }
            }
        }

        .lp-btn-icon {
            width: 2.2rem;
            height: 2.2rem;
            border: 0.3rem solid #ffffff;
            border-radius: 50%;
            transition:
                background 0.35s ease,
                box-shadow 0.35s ease;

            @media screen and (max-width: 767px) {
                width: 1.6rem;
                height: 1.6rem;
                border-width: 0.2rem;
            }
        }
    }

    .lp-event-card {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 0;
        padding: 7.2rem 4.8rem;
        background: rgba(11, 9, 76, 0.9);
        box-shadow: inset 0 0 3rem rgba(255, 255, 255, 0.25);
        -webkit-backdrop-filter: blur(0.45rem);
        backdrop-filter: blur(0.45rem);
        text-align: center;

        @media screen and (max-width: 767px) {
            padding: 4.8rem 2rem;
        }

        .lp-event-title {
            margin-bottom: 3.6rem;
            font-size: 3.8rem;
            font-weight: 700;
            line-height: 1.5;
            letter-spacing: 0.1em;

            @media screen and (max-width: 767px) {
                margin-bottom: 2.4rem;
                font-size: 2.4rem;
            }
        }

        .lp-event-text {
            margin-bottom: 3.6rem;
            font-size: 2.25rem;
            line-height: 1.8;
            letter-spacing: 0.05em;

            @media screen and (max-width: 767px) {
                margin-bottom: 2.4rem;
                font-size: 1.4rem;
            }
        }

        .lp-event-btn {
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 1.2rem;
            width: 100%;
            min-height: 6.8rem;
            border-radius: 999rem;
            background: #ffffff;
            font-size: 1.8rem;
            font-weight: 700;
            color: #000000;
            text-decoration: none;
            transition:
                transform 0.45s ease,
                box-shadow 0.45s ease,
                background 0.45s ease,
                color 0.45s ease;

            &::before {
                content: "";
                position: absolute;
                top: 0;
                left: 0;
                z-index: 0;
                width: 45%;
                height: 100%;
                background: linear-gradient(
                    100deg,
                    transparent 0%,
                    rgba(255, 255, 255, 0.55) 50%,
                    transparent 100%
                );
                transform: translateX(-180%) skewX(-18deg);
                pointer-events: none;
            }

            .lp-btn-icon,
            .lp-btn-text {
                position: relative;
                z-index: 1;
            }

            @media screen and (max-width: 767px) {
                min-height: 5.2rem;
                gap: 0.8rem;
                font-size: 1.4rem;
            }

            @media (hover: hover) and (pointer: fine) {
                &:hover {
                    transform: translateY(-0.2rem);
                    background: linear-gradient(90deg, #221b60 0%, #254581 100%);
                    color: #ffffff;
                    box-shadow:
                        inset 0.30014rem 0.30014rem 0.600279rem
                            rgba(255, 255, 255, 0.55),
                        0 0.8rem 2.4rem rgba(90, 120, 255, 0.4);

                    &::before {
                        transform: translateX(320%) skewX(-18deg);
                        transition: transform 0.75s ease;
                    }

                    .lp-btn-icon {
                        border-color: #ffffff;
                        background: rgba(255, 255, 255, 0.22);
                        box-shadow: 0 0 1.2rem rgba(255, 255, 255, 0.75);
                    }
                }
            }

            .lp-btn-icon {
                width: 2.2rem;
                height: 2.2rem;
                border: 0.4rem solid #2a2580;
                border-radius: 50%;
                transition:
                    background 0.35s ease,
                    box-shadow 0.35s ease,
                    border-color 0.35s ease;

                @media screen and (max-width: 767px) {
                    width: 1.6rem;
                    height: 1.6rem;
                    border-width: 0.3rem;
                }
            }
        }
    }
}

/* WebKit does not blend with the video layer behind, so color-dodge shows plain gray there. */
html.is-webkit
    .lp-content
    .lp-center
    .lp-detail
    .lp-detail-head
    .lp-detail-sphere-box
    .lp-detail-sphere {
    background: radial-gradient(
        93.26% 92.94% at 28.58% 7.06%,
        rgb(43, 35, 255) 0%,
        rgba(25, 20, 171, 0.95) 21%,
        rgba(17, 14, 121, 0.8) 42%,
        rgba(13, 11, 93, 0.5) 63%,
        rgba(11, 9, 76, 0) 84.06%
    );
    mix-blend-mode: normal;
}

.lp-reveal {
    opacity: 0;
    transform: translateY(2.4rem);
    transition:
        opacity 0.8s ease,
        transform 0.8s ease;
}

.lp-reveal.is-in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {
    .lp-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
